我有大量的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
但是这些创建了一个包含所有数据文件中所有曲线的单个图形,而我需要的是连续绘制的连续图形,从而显示变量图形的时间演变。
答案 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
作为0002
,n=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
的文件。