我有一个文件,我想在同一个图表中绘制2个图。如果2个图的数据是分开的,我知道怎么做,但是如果每个图的数据都散布在其他图中,我该怎么做呢?
例如,这里是数据文件,第一列表示数据所属的图,第二列和第三列是x轴和y轴值:
# plotnum xaxis yaxis
1 2 1
2 3 2
1 3 2
2 5 4
从这里我想绘制2个情节,plot1和plot2,以及第一个绘图(2,1)和(3,2),其中第二个绘图(3,2)和(5,4)
我如何实现这一目标?
答案 0 :(得分:1)
您可以使用every
关键字,如下所示:
plot 'test.dat' every ::0::1 using 2:3 w lp, '' every ::2::3 using 2:3 w lp
例如::0::1
指示Gnuplot选择0到1点,即前两个("点索引"从零开始)
编辑: 如果第一列应该确定剩下的两列属于哪个图,一种解决方案是依靠外部实用程序(如gawk)来预过滤文件:
filter(fname, group)=sprintf("<gawk '$1==%d{print $2,$3}' %s", group, fname)
plot filter('test.dat', 1) w l
此处,gawk已经过滤掉了第二列和第三列,以便之后不需要使用using
关键字。