如何使用 gnuplot 在连续图中绘制多个数据文件

How to plot several datafiles in consecutive graphs using gnuplot

我有大量的 ASCII 文件以 data.xxxx.tab 的形式命名,其中 "xxxx" 是一个介于 0000 和 9999 之间的数字。每个文件包含 5 列,其中第一列用于X 坐标,第二个用于 Y 坐标,其余三个用于我希望针对 X 坐标绘制的变量。我需要知道如何在 gnuplot 4.6 中编写一个循环,它可以根据 X 坐标绘制其中一个变量的连续图形。

我已经尝试过以下帖子中给出的说明:

gnuplot : plotting data from multiple input files in a single graph

但是这些创建了一个单一的图表,其中包含所有数据文件中的所有曲线,而我需要的是一个接一个地绘制的连续图表,从而显示变量图表随时间的演变。

我建议使用调用 gnuplot 文件的 shell 脚本

文件plot.gp:

set term png
set out fname.".png"
set title fname
plot fname w l

然后在 shell:

for fname in data.????.tab; do gnuplot -e fname=\"$i\" plot.gp; done

你会为每个 data.xxxx.tab.

得到一个名为 data.xxxx.tab.png 的文件

以下应该有效:

# fix axes for proper comparison between graphs
set xrange [0:10]
set yrange [0:10]

# if you want an animated gif
set term gif animate
set output 'output.gif'

# then plot your data
do for [n=0:9999]{
    plot sprintf("data.%04d.tab", n) using 1:2 title 'case '.n
}

sprintf 命令中的 %04d 字符串打印数字 n,在 n 的最小字段宽度之前有四个零,即 n=2打印为 0002n=9999 打印为 9999