我有以下数据,我不想使用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中的值将被总结。
提前致谢, 弗兰克
答案 0 :(得分:2)
执行此操作的一种方法是使用grep
查找以A
或B
结尾的行并绘制结果。如果您知道字符行将以:
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循环的字符串,然后再次进行绘图。