Gnuplot中的Gif动画制作

10

我有一个数据文件,每个数据块由两行分隔开。每个数据块大约有50行。我正在尝试制作一个 .gif 文件。我知道如何单独或批量绘制它们,但无法使 .gif 正常工作。

我的问题与 Glen MacLachlan 在他的YouTube频道第5部分中解决的问题类似。我有大约50个数据点,而不是1个点。他通过利用$index功能解决了该问题,我也尝试了相同的方法,但我的不起作用。

我错过了什么?我真的必须将数据单独绘制到 .png 文件中,然后将它们组合在一起以获取 .gif 文件吗?

我的做法:

我编辑了数据文件。之前有两列 x 和 y。现在,我将它们放在第二和第三列中,并且第一列是从0到50的索引。每个数据块具有类似的索引。

创建绘图文件的 bash 脚本

for ((i=0;i < 50; i++)) do echo "plot 'data.txt' 
u 2:3 w circles index $i"; done >>simulate.plt

它只是绘制所有数据点

1个回答

15

为什么不展示一下你尝试过的内容呢?

以下代码应该可以正常运行:

set terminal gif animate delay 100
set output 'foobar.gif'
stats 'datafile' nooutput
set xrange [-0.5:1.5]
set yrange [-0.5:5.5]

do for [i=1:int(STATS_blocks)] {
    plot 'datafile' index (i-1) with circles
}

使用文件datafile

0
1


2
3


4
5

提供

输入图像描述


谢谢。它给了我一个错误,说x-range无效。我也尝试过使用plot 'datafile' u 1:2。当我删除索引(i-1)部分时,它确实生成了一个文件,但是它多次绘制了所有数据。 - jimmu
我更新了答案,提供了一个完整的、可运行的示例。如果仍然无法正常工作,请提供您的数据文件链接和一个最小但可运行的示例脚本,以展示问题。 - Christoph
非常感谢。虽然不是完美的,但我已经得到了一个可以“动画”的.gif文件。 - jimmu
抱歉,我忘记更新我的答案了。现在它按照我的预期工作了。再次感谢。 - jimmu
@Christoph 我在尝试类似的东西,你能看一下这里吗?http://stackoverflow.com/questions/27430479/gnuplot-from-data-file-for-assignment-in-do-for-loop-for-an-animation - user1971598
@Christoph,我有一个非常大的文件,其中包含20000个时间步。不知何故,gnuplot仅检测到1001个块,并在此后停止动画而没有抛出异常。你有什么想法是什么问题吗? - McLawrence

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接