FuncAnimation仅打印第一张图像

时间:2018-12-03 17:40:25

标签: python animation matplotlib

我正在尝试使用第一个维度作为时间为python中的3D数组设置动画。

我不确定我要去哪里,因为我没有收到这段代码的错误。但是我的动画是静止的,停留在数组的第一页上。

import numpy as np
from matplotlib import pyplot as plt
from matplotlib.animation import FuncAnimation

array = np.random.random(size=(10, 20, 30))
empty = np.zeros(array[0].shape)

fig = plt.figure()
mat = plt.imshow(empty)
def func(i):
    mat.set_data(array[i])
    return mat
frames = len(array)
FuncAnimation(fig, func, frames)
plt.show()

我想使用下面的代码,但是我没有看到任何与FuncAnimation一起使用的匿名函数。除了未创建mat并将其设置为初始axes之外,它产生的结果相同。

fig = plt.figure()
func = lambda i: plt.imshow(array[i])
frames = len(array)
FuncAnimation(fig, func, frames)
plt.show()

1 个答案:

答案 0 :(得分:0)

您的代码与在matplotlib动画中找到的任何示例之间的主要区别在于,您实际上并未存储FuncAnimation。根据运行方式的不同,将直接对其进行垃圾收集。

ani = FuncAnimation(...)