来自数据文件的 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'
这是一个示例输出:
相关:
- Whosebug: Gif Animation in Gnuplot
- gnuplot-surprising: creating gif animation
- gnuplotting: Animation IV – trajectory
我意识到这可能是微不足道的,如果我有更多时间,我自己可能会轻松处理它,但我 运行 没时间了,我迫切需要尽快让这个动画工作尽可能。
我有
类型的数据文件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'
这是一个示例输出:
相关:
- Whosebug: Gif Animation in Gnuplot
- gnuplot-surprising: creating gif animation
- gnuplotting: Animation IV – trajectory