如何跳过gnuplot中的重复标签?

时间:2015-10-23 17:11:45

标签: gnuplot

我有一个图表,我想从一个看起来像这个

的文件中添加标签
20151019,labela
20151020,labela
20151021,labela
20151022,labelb
20151023,labelb

但我只想显示标签,如果它与之前的标签不同。 (所以只在20151019和20151022上贴标签)目前我必须预先处理文件以删除重复项。有没有办法在gnuplot中做到这一点?

1 个答案:

答案 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