我有一个图,我想从看起来像这样的文件中贴上标签
20151019,labela
20151020,labela
20151021,labela
20151022,labelb
20151023,labelb
但是,我只希望显示的标签与先前的标签不同。(因此仅在20151019和20151022上贴上标签)当前,我必须对文件进行预处理以删除重复项。有没有办法在gnuplot中做到这一点?
通常,预处理文件是最佳选择。这也可以即时完成,例如
plot '< script.sh file' ...
因为您可以使用这种预处理,所以gnuplot仅对这种数据操作提供有限的支持。
在您的情况下,您可以使用一个技巧:将所有标签注册在字符串中,并用标签中未出现的某些字符分隔。然后,您可以使用strstrt
来查找标签是否已出现,否则可以跳过要点:
set datafile separator ','
set timefmt '%Y%m%d'
set xdata time
s = ''
known(c) = (strstrt(s, '@@'.strcol(c).'@@') > 0)
plot 'file.dat' using (use = known(2), s = s . (use ? '@@'.strcol(2).'@@ ' : ''), use ? timecolumn(1) : 1/0):(0):2 with labels
我不知道您的坐标是什么,所以我用0
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句