来自数据文件的 Gnuplot 3d 时间动画

Gnuplot 3d time animation from data file

我意识到这可能是微不足道的,如果我有更多时间,我自己可能会轻松处理它,但我 运行 没时间了,我迫切需要尽快让这个动画工作尽可能。

我有

类型的数据文件
0          28.3976  25.1876  12.7771 
0.03125    34.1689  21.457   9.70863 
0.0625     35.7084  17.6016  5.03987 
0.09375    34.3048  13.6718  1.45238 
...

其中第一列被视为时间(它实际上是某个 ODE 系统的数值解)。现在。我需要的是最后三列的 3d 图的动画,它跟踪一条随时间移动的曲线。那可行吗?如果是这样,如何?我是一个完整的 gnuplot 初学者,谷歌搜索并没有多大帮助。我将不胜感激任何帮助。干杯!

下面应该给你看一个动画情节:

# define fixed axis-ranges
set xrange [-1:1]
set yrange [0:20]
set zrange [-1:1]

# filename and n=number of lines of your data 
filedata = 'data.dat'
n = system(sprintf('cat %s | wc -l', filedata))

do for [j=1:n] {
    set title 'time '.j
    splot filedata u 2:3:4 every ::1::j w l lw 2, \
          filedata u 2:3:4 every ::j::j w p pt 7 ps 2
}

splot命令的第一行绘制了trayectory,第二行绘制了当前时间点。

如果您想要此输出的 gif,只需在 for 循环之前添加以下内容:

set term gif animate
set output 'output.gif'

这是一个示例输出:

相关: