1
我正在一个项目上工作,我想动画我的一些结果。对于我的项目有很多计算完成,但有一个参数,我想改变。Multiplot Animation
我已经做了一些模拟代码来说明我的问题:
import matplotlib.pyplot as plt
import numpy as np
alpha = np.linspace(1, 10, 50)
x = np.linspace(0, 10, 100)
y = x * x
for i in range(len(alpha)):
plt.plot(x, alpha[i] * y)
plt.title("Alpha = " + str(alpha[i]))
plt.xlim(0, 10)
plt.ylim(1, 100)
plt.savefig("./animation_test/" + str(i) + "_Alpha=" + str(alpha[i]) + ".png")
plt.close()
这让我有我的图片文件夹中我做了所谓的animation_test。现在,我只是要在我的bash终端运行像
$convert -delay 50 * test.gif
做一个简单的小动画GIF,但在我的终端排序是有点滑稽
0_Alpha=1.0.png
10_Alpha=2.83673469388.png
11_Alpha=3.02040816327.png
.
.
.
19_Alpha=4.48979591837.png
1_Alpha=1.18367346939.png
20_Alpha=4.67346938776.png
21_Alpha=4.85714285714.png
.
.
.
现在在我的搜索,他们是按正确的顺序列出。有没有更好的方法来标记这些文件,甚至是一个更好的方式来做动画整体?最终产品不一定是.gif,只是我可以玩的东西。
这听起来像你只是希望像'文件名= “/path/{:02}_Alpha={:0.3f}.png”。格式(i,alpha [i])'这样你的文件名将是'00_Alpha ...','01_Alpha ...','02_Alpha ...'等,并且会正确排序。 (另外,如果你有100多个步骤,你将会使用'“{:03}”'而不是'“{:02}”')。或者,你可以使用matplotlib的动画模块并输出一个gif或视频直接。 –
+1 @JoeKington关于使用动画模块的说法。不要重新发明轮子;) – tacaswell