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

时间:2016-01-07 13:53:05

标签: loops gnuplot

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

我已经尝试过以下帖子中提供的说明:

Plotting with gnuplot from several files

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

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

2 个答案:

答案 0 :(得分:2)

以下内容应该有效:

# 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
}

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

答案 1 :(得分:1)

我建议使用调用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.png获取一个名为data.xxxx.tab的文件。