使用gnuplot根据列值绘制多个图形

时间:2015-04-16 14:33:35

标签: gnuplot

我有以下数据,我不想使用GNUPLOT进行绘图:

#TIME #VALUE #SOURCE
1 100 A
1 88 B
2 115 A
2 100 B
3 130 A
3 210 B

我希望绘制两条线,具体取决于列#SOURCE的值。 A 一行, B 一行。 GNUPLOT是否可行,如果是,如何?

是否可以根据列#TIME绘制列#VALUE的总和?意味着,对于#TIME中所有相等的条目,#VALUE中的值将被总结。

提前致谢, 弗兰克

1 个答案:

答案 0 :(得分:2)

执行此操作的一种方法是使用grep查找以AB结尾的行并绘制结果。如果您知道字符行将以:

结束,则可以在带有for循环的单个绘图行中执行此操作
plot for [s in 'A B'] sprintf("<(grep -v '%s$' data.dat)", s) u 1:2 w l

这会将您提供的数据(保存在data.dat中)绘制为两条不同的行。

您还可以将for部分更改为[s in 'word1 word2 word3']或您喜欢的任何其他字符串。如果您不知道字符/字线将以您结束,则可能需要先将文件传递两次以确定for循环的字符串,然后再次进行绘图。