最近写了些新功能,遇到了不少的问题。好在百度在关键时候发挥了不少的作用。

这里我只会讲述其中一个。


import matplotlib
matplotlib.use("agg")
import matplotlib.pyplot as plt
import matplotlib.animation as animation
// ................
ani = animation.ArtistAnimation(fig, ims, interval=120, blit=True, repeat_delay=1000)

当我保存了自己写的GIF文件生成代码之后,试着运行了一下,发现出来的动图一律在动画结束之后没有时间间隔地直接重复原动画。

这让我很迷惑啊… 按照matplotlib的官方文档,ArtistAnimation参数中的repeat_delay就是动画间隔(ms),而在使用这个参数之后居然不管用了。

于是我根据了自己设定的interval,用最笨的方法解决了这个问题:

ims = []
for i in range(len(picList)):
    tmp = mpimg.imread(picList[i])
    if i == len(picList) - 1:
        for ii in range(0, 8): #在这里我使用的interval为120ms,若使用延迟1000ms的方法则需要循环大约8次
            ims.append([plt.imshow(tmp, interpolation="spline36", aspect='auto')])
            else:
                ims.append([plt.imshow(tmp, interpolation="spline36", aspect='auto')])

以上就是我解决动画延迟的办法了。有知道问题的原因的小伙伴们,可以在下面的评论区与我一起讨论,我们欢迎大家一起解决问题!

1 个评论

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注