我有一个文件,我正在用gnuplot绘图。我的数据如下:
x,y1,y2
0,0,0
1,0.0,0.1
1,0.1,0.15
1,0.3,0.2
... etc
2 blank lines -> new block
0,0,0
0,0,0 (just example data)
0,0,0
... etc
2 blank lines -> new block
0,0,0
0,0,0
0,0,0
... etc
... etc (more blocks)
如果我运行命令:plot' file.csv'使用1:2,然后所有块出现在同一图表上。我有大约1000块,显然这会产生一些不可读的东西。
如何在不同的图表上绘制所有块?对于每个数据块"类似于"循环什么的?
我使用gnuplot for循环在这方面取得了进展。这实际上可能不是一个特别好的方法,我现在卡住了,因为我无法计算"数据块的数量"在我的档案中。
这是我到目前为止所做的:
NMAX=3 # How do I know what this should be?
do for [n=0:NMAX] {
ofname=sprintf("%d.png", n)
set output ofname
plot 'timeseries.csv' index n using 1:2, 'timeseries.csv' index n using 1:3 with lines
}
也许这有用吗?目前我还不知道如何自动设置NMAX。
NMAX
命令设置 stats
:stats 'datafile.csv'
然后NMAX=STATS_blocks
。
可能有更好的方法。
答案 0 :(得分:1)
这个问题帮助了我:Count number of blocks in datafile
我的代码:
stats datafile
NMAX=STATS_blocks
do for [n=0:NMAX] {
ofname=sprintf("%d.png", n)
set output ofname
plot 'timeseries.csv' index n using 1:2, 'timeseries.csv' index n using 1:3 with lines
}