我想知道如何使用gnuplot矩阵非均匀格式制作Gnuplot 2d动画,第一列是时间,第一行是x轴刻度,第一行的第一个数字是在第一个列之后的列中,给出了这样一个矩阵的示例,假设我们有2个时间迭代和2个空间点。如果索引从0到1,那么这样的矩阵会像这样
2 x[0] x[1]
t[0] f(0,0) f(0,1)
t[1] f(1,0) f(1,1)
如何在gnuplot中为每次迭代f(t,x)
制作2D动画?
谢谢
答案 0 :(得分:0)
如果您的数据采用以下方式,则可能会更容易:
2x2 t[0] t[1]
x[0] f(0,0) f(0,1)
x[1] f(1,0) f(1,1)
如果您的数据已经包含列x[..]
和行t[..]
,则可能还有一种方法,但可能会更复杂。
下面的示例将创建一些虚拟数据(还将其写入文件),并将其绘制到动画GIF中。在gnuplot中,还请检查help gif
以获取更多信息。根据您的需要更改代码。
### create some animated graph
reset session
set term gif size 300,300 animate delay 10 loop 0 optimize
set output "Animate.gif"
# create some dummy data
m = 50
n = 50
set print $Data
temp = sprintf("%gx%g\t",m,n)
do for [j=1:n] {
temp = temp.sprintf("t[%g]",j)
if (j<n) {temp = temp."\t"}
}
print temp
do for [i=1:m] {
temp = ""
do for [j=1:n] {
temp = temp.sprintf("%g", sin(2*pi*j/real(n)+2*pi*i/real(m)))
if (j<n) {temp = temp."\t"}
}
temp = sprintf("x[%g]\t",i).temp
print temp
}
set print "Animate.dat"
print $Data
set print
# dummy data finished
FILE = "Animate.dat"
stats FILE u 0 nooutput
set yrange[-1:1]
set xtics 10
set grid xtics, ytics
do for [i=2:STATS_columns] {
plot FILE u 0:i w lp lt 7 lc rgb "red" title columnhead(i)
}
set output
### end code