我有一个图表,我想从一个看起来像这个
的文件中添加标签20151019,labela
20151020,labela
20151021,labela
20151022,labelb
20151023,labelb
但我只想显示标签,如果它与之前的标签不同。 (所以只在20151019和20151022上贴标签)目前我必须预先处理文件以删除重复项。有没有办法在gnuplot中做到这一点?
答案 0 :(得分:0)
通常,预处理文件是最佳选择。这也可以在运行中完成,比如
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
我不知道你有哪个y坐标,所以我使用了0
。