Я пытаюсь анимировать трехмерный массив в python, используя первое измерение как время.
Я не уверен, в чем я ошибаюсь, так как я не получаю ошибки с этим кодом.Но моя анимация неподвижна, она застряла на первой странице массива.
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()