File Gnuplot在重新启动计数后重新绘制线

File Gnuplot在重新启动计数后重新绘制线,file,gnuplot,File,Gnuplot,我对Gnuplot很陌生,如果这个问题可能很愚蠢,那么很抱歉,但是我还没有找到解决方案 我有一个具有以下结构的数据文件: timestep=0 1 -1.367+00 -2.538572773308e-01 2 -1.351097897106e+00 -2.382132334519e-01 3 -1.372764576847e+00 -1.205983667912e-01 4 -1.33451163582e+00 -2.3438654806e-01 5 -2.414

我对Gnuplot很陌生,如果这个问题可能很愚蠢,那么很抱歉,但是我还没有找到解决方案

我有一个具有以下结构的数据文件:

timestep=0
   1 -1.367+00 -2.538572773308e-01
   2 -1.351097897106e+00 -2.382132334519e-01
   3 -1.372764576847e+00 -1.205983667912e-01
   4 -1.33451163582e+00 -2.3438654806e-01
   5 -2.414239606e+00 -2.683590584894e-01
   6 -4.425446031e+00 -3.246530421864e-01
   7 -6.438461740e+00 -4.589039346035e-01
   ...
timestep=1
 ...
timestep=2
...
因此,对于每一个时间步,我想要的x轴上的迭代次数,都会重新开始。 将有许多时间步,因此如果我将所有时间步绘制在一起,很难看到每一行。 所以问题是:我怎样才能画出一个时间步的线

每个时间步的迭代次数不同

谢谢

我想你可以使用plot,更多细节和另一个stackoverflow描述


这样,您就可以选择不只是绘制一个时间步;但你可以选择每秒钟或每三分钟说一次。

这个问题看起来像是重复的。 然而,我们的想法是分别绘制每个区块:

plot for[in=0:2] 'file' index in u 1:2 w lines t columnheader(1)
请注意,您需要使用双引号包装每个标题

如果每个块都需要单独的输出,则需要如下所示的构造do:

do for [i=0:2] {
set output sprintf("%d.png", i)
plot 'file' index i u 1:2 not
}
更新

我又检查了一遍,下面是我的最简脚本:

set term png size 800, 600
set output "out.png"
plot for[in=0:1] 'file' index in u 1:2 w lp t columnheader(1)
和我的文件:

"timestep=0"
1 0
2 3
3 2
4 1
5 6



"timestep=1"
1 4
2 3
3 9
4 6
5 3

输出必须如下所示:

可能重复See Ethan的答案,该答案使用了最近5.2.5版本的新功能。不幸的是,every在此没有帮助….gnuplot>plot for[in=0:2]u 1:2 w行中的“文件”索引t columnheader1^无效expression@federicorovere你能检查一下最新的答案吗?