自动标题任意数量的块

时间:2015-02-19 16:22:02

标签: gnuplot

我想分别从文件中绘制单个块。我发现这有效:

$ cat test
A
0 0
1 1


B
0 0
1 2


C
0 0
1 3

然后

gnuplot> plot for [i=0:2] 'test' index i with lines title columnhead

给了我三条标记为A,B,C的单独行。完美。

但我不知道文件中的块数,所以我遇到了问题。 This answer建议使用stats来获取文件中的块数,但stats会失败并显示bad data on line 6(标题," B",第二块)。

我可以控制输入文件,因此如果需要,我可以采用不同的格式。

如何使用自动标题绘制任意数量的块(单独)?

1 个答案:

答案 0 :(得分:2)

使用gnuplot 5.0版,您可以在致电set key autotitle columnheader之前使用stats

set key autotitle columnheader
stats 'test'

set style data lines
plot for [i=0:STATS_blocks-1] 'test' index i 

这不适用于4.6及更早版本。在这里,您可以使用grep之类的外部工具在传递给stats时过滤数据。要删除所有不以数字开头或不为空的行,可以使用

stats '< grep -v "^[^0-9]" test'

stats '< grep ''\(^[0-9]\)\|\(^$\)'' test'

确定数据集的数量,该数据集存储在变量STATS_blocks中。