我搜索了其他类似的问题,但这并没有解决我的问题。下面是一个简单的代码,它在matplotlib中以gif图像的形式生成动画:
import numpy as np
import matplotlib.pylab as plt
import matplotlib.animation as anm
fig = plt.figure()
def draw(i):
x = np.linspace(0, 5, num = 1000)
y = np.sin(x-i*0.1)
plt.clf()
plt.plot(x, y, 'r-')
anim = anm.FuncAnimation(fig, draw, frames = 10, interval = 500, repeat = False)
anim.save('test.gif', fps = 1, writer = 'imagemagick')
这会生成我想要的动画但是一旦打开最终图像(使用eog),它就会不断重复。由于我将在演示文稿中呈现动画,我希望它在显示一次之后停止。您可以注意到,我在FuncAnimation中添加了repeat = False
,但这并没有停止重复图像。我的代码出了什么问题?
提前致谢
答案 0 :(得分:0)
我对这个问题的解决方案是从imagemagick转变为枕边的作家。
尝试以下操作:
from matplotlib.animation import FuncAnimation, PillowWriter
anim = FuncAnimation(fig, update, frames=range(1, 51), interval=.001, repeat=False)
anim.save('test.gif', dpi=80, writer=PillowWriter(fps=5))
在我看来,图像质量比使用imagemagick差一些,但这是一个更容易,更快捷的解决方案。