停止 gif 图像在 matplotlib 中重复

Pea*_*ful 5 python animation matplotlib gif

我搜索了其他类似的问题,但这并没有解决我的问题。下面是一个简单的代码,它在 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')
Run Code Online (Sandbox Code Playgroud)

这会生成我想要的动画,但是一旦我打开最终图像(使用 eog),它就会不断重复。由于我将在演示文稿中呈现动画,因此我希望它在显示一次后停止。正如您所注意到的,我已经添加repeat = False了 FuncAnimation 但这并没有停止重复图像。我的代码有什么问题?

提前致谢

sch*_*oli 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))
Run Code Online (Sandbox Code Playgroud)

我认为图像质量比 imagemagick 稍差,但这是一个更简单、更快的解决方案。