我想分别从文件中绘制单个块。我发现这有效:
$ 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",第二块)。
我可以控制输入文件,因此如果需要,我可以采用不同的格式。
如何使用自动标题绘制任意数量的块(单独)?
答案 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
中。