如何使用 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
打印为 0002
,n=9999
打印为 9999
。
我有大量的 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
打印为 0002
,n=9999
打印为 9999
。