我有一个
形式的文件# 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将它作为一个表面,结果非常糟糕(因为一条线的端点接近下一行的端点,而不是第一点)。如何将它们绘制为不同的行(因为每行都在不同的文件中)?
答案 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
来选择某个linetype
或linestyle
。