我有 1000 个名为“data_i.dat”的文件,i->(1,1000)。每个文件的格式为
1 0.311 0.422 0.011
2 0.455 0.111 0.431
.
.
.
等等。现在,我想绘制一个包含 1000 个点的图表,其中每个点都是每个文件第 352 行和第 2 列中的数字。有办法做到这一点吗?
我尝试写作
plot for[i=0:1000] sprintf('data_%d.dat',i) every ::352::352
我知道这不是正确的方向,但我不知道如何去做。
绘制数据的最短方法可能是:
plot for [i=1:1000] sprintf("data_%d.dat",i) every ::351::351 u 1:2 w lp pt 7
但是,尽管使用
plot for
,with linespoints
循环仍将绘制来自未连接的不同文件的数据。
此外,请记住行索引从零开始。所以,第 352 行需要 every ::351::351
。
所以,我的建议是首先将单个数据线收集到数据块中,然后将其连接起来
with linespoints
。
脚本:
### plot single lines from many different files
reset session
myFile(i) = sprintf("data_%d.dat",i)
set table $Data
plot for [i=1:1000] myFile(i) every ::351::351 u 1:2 w table
unset table
plot $Data u 1:2 w lp pt 7
### end of script