FuncAnimation печатает только первое изображение - PullRequest
0 голосов
/ 03 декабря 2018

Я пытаюсь анимировать трехмерный массив в 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()

1 Ответ

0 голосов
/ 03 декабря 2018

Основное различие между вашим кодом и любым примером, который вы найдете на анимациях matplotlib, заключается в том, что вы на самом деле не сохраняете FuncAnimation.В зависимости от того, как вы запускаете вещи, он будет напрямую собираться мусором.

ani = FuncAnimation(...)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...