从同一数据文件中在gnuplot中绘制多行

时间:2013-10-15 14:12:01

标签: plot gnuplot

我有一个

形式的文件
# Line 1
# x y z
  x11 y11 z11 
  x12 y12 z12
  .... 
  x1n y1n z1n
  ( blank row )

 .....


# Line N
# x y z
  xN1 y11 z11 
  xN2 y12 z12
  .... 
  xNk yNk zNk

如果我试图绘制这样的文件,gnuplot将它作为一个表面,结果非常糟糕(因为一条线的端点接近下一行的端点,而不是第一点)。如何将它们绘制为不同的行(因为每行都在不同的文件中)?

1 个答案:

答案 0 :(得分:1)

坐标的每个连续部分称为block。两个block由一个空行分隔。 (注意,两个空白行分隔了两个可以使用index访问的数据集。)

您可以使用every选项选择某一行进行绘图:

block = 4
splot 'file.dat' every :::block::block

这会选择第五个block(编号从0开始。)

要遍历所有可用块,您可以使用stats命令估计块数:

stats 'file.dat'
splot for [i=0:int(STATS_blank)] 'file.dat'

请注意,文件末尾的一些空白(不分隔块)也会被计算,但这对于迭代来说没有问题。

您当然也可以使用迭代变量i来选择某个linetypelinestyle