Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Loops 如何使用gnuplot在连续图形中绘制多个数据文件_Loops_Gnuplot - Fatal编程技术网

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

Loops 如何使用gnuplot在连续图形中绘制多个数据文件,loops,gnuplot,Loops,Gnuplot,我有大量ASCII文件,它们的命名顺序是data.xxxx.tab,其中“xxxx”是介于0000和9999之间的数字。每个文件包含5列,其中第一列表示X坐标,第二列表示Y坐标,其余三列表示我希望根据X坐标绘制的变量。我需要知道如何在gnuplot4.6中编写一个循环,它可以根据X坐标绘制其中一个变量的连续图形 我已经尝试了以下帖子中给出的说明: 及 但是这些创建了一个包含所有数据文件的所有曲线的单一图形,而我需要的是一个接一个地绘制的连续图形,从而显示变量图形的时间演变。我建议使用调用gn

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

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


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

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

文件
plot.gp

set term png
set out fname.".png"
set title fname
plot fname w l
然后在外壳中:

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
,非常感谢!你的建议很有效。如果不麻烦的话,我想知道这个方法对.flt或.dbl文件的工作方式是否与对.tab数据文件的工作方式相同?tab、flt和dbl文件之间的区别是什么?这些不是标准的文件扩展名。@MeirZeilig Hess我不知道这些文件扩展名是什么,但这种方法应该适用于任何文件扩展名和任何包含数据列的ascii文件。.flt是单精度(4字节)二进制数据文件,.dbl是双精度(8字节)二进制数据文件。在这两种情况下,数据都可以按列排序,类似于.tab ASCII文件。对于二进制数据,请在文件名后添加
二进制
说明符:
绘图sprintf(…)二进制格式=“%5double”,使用1:2
%5double
告诉gnuplot数据的格式为五列double。