使用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中的值将被总结.

提前致谢,
坦率

最佳答案 一种方法是使用grep来定位以A或B结尾的行并绘制结果.如果您知道字符行将以下结尾,则可以在带有for循环的单个绘图行中执行此操作:

plot for [s in 'A B'] sprintf("<(grep -v '%s$' data.dat)", s) u 1:2 w l

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

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

点赞