Gnuplot:来自单个文件的几个图,其中数据是散布的

时间:2016-08-25 21:01:12

标签: gnuplot

我有一个文件,我想在同一个图表中绘制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)

我如何实现这一目标?

1 个答案:

答案 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关键字。