2

可以在gnuplot中完成以下操作吗?如果是,如何?

我在以 t,x,y,z 作为标题的表中有时间与位置 (x,y,z) 的数据。

我想知道我是否可以以某种方式绘制粒子在预定义空间内的相同时间与位置,并在每个时间步后暂停;这样我就可以看到粒子位置随时间的演变。我也想知道能不能画一条从前一个位置到当前位置的连续线,这样我才能真正看到它过去的轨迹。

示例数据:

假设预定义的空间是一个 10x10x10 的盒子,我的粒子在 3 秒内具有以下位置。

t x y z

0 1 2 3 

1 2 3 4

2 3 4 5

3 4 5 6

我怎么看到粒子的轨迹!我的想法是,如果我可以将每个时间步的情节暂停一点,它看起来就像一个动画,我可以使用屏幕捕捉软件捕捉...

除非,这些数据也可以使用 gnuplot 进行动画处理

如果 gnuplot 不是正确的工具,是否有任何其他软件可以更有效和/或优雅地执行此操作!?

任何帮助,将不胜感激!

谢谢。

4

2 回答 2

5

创建文件main.gp并运行gnuplot main.gpload "main.gp"在 gnuplot shell 中运行。输出在 point.gif 中。文档
http://www.gnuplot.info/documentation.html
您也可以输入helpgnuplot shell。

主.gp

set term gif animate delay 30 size 400, 400
set output "point.gif"
do for [n=1:4] {
    splot [0:7][0:7][0:7] "data" u 2:3:4 every :::::n w lp t sprintf("n=%i", n)
}

数据

t x y z

0 1 2 3

1 2 3 4

2 3 4 5

3 4 5 6

在此处输入图像描述

编辑:我按照@mgilson 的建议切换到迭代。

于 2012-07-24T20:56:34.530 回答
1

我想通了..每个代码都应该是 ::::n 而不是 5 个冒号。现在,如果我想有 2 个单独的文件以不同的方式读取和着色,我会怎么做?我有这个,它用红色为 2 个地块着色。如果我想要红色和蓝色怎么办?为 [n=1:46] { splot [0:0.002][0:0.0025][0:0.001] "data3.txt" u 2:3:4 每 ::::nw lp t sprintf("n= %i", n) splot [0:0.002][0:0.0025][0:0.001] "data4.txt" u 2:3:4 每 ::::nw lt 1 lw 1 pt 1 ps 1 lc rgb " blue" sprintf("n=%i", n) } ### second splot throws an error.. 如果两个 splots 使用相同的代码-不会 wrk

于 2012-07-25T20:33:05.037 回答