Создайте анимацию с Python3 и Matplotlib - PullRequest
1 голос
/ 11 апреля 2020

Я попытался создать анимацию с matplotlib.pyplot и matplotlib.animation, и я столкнулся с двумя проблемами:

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

fig = plt.figure()


def f(x, y):
    return np.sin(x) + np.cos(y)

x = np.linspace(0, 2 * np.pi, 120)
y = np.linspace(0, 2 * np.pi, 100).reshape(-1, 1)
# ims is a list of lists, each row is a list of artists to draw in the
# current frame; here we are just animating one artist, the image, in
# each frame
ims = []
for i in range(60):
    x += np.pi / 15.
    y += np.pi / 20.
    im = plt.imshow(f(x, y), animated=True)
    ims.append([im])

ani = animation.ArtistAnimation(fig, ims, interval=50, blit=True,
                                repeat_delay=1000)

# ani.save('dynamic_images.mp4')

plt.show()

Я получил ошибку: AttributeError: «функция» не имеет атрибута «холст» (я попытался, и я не получил никакой ошибки ...

  • 2-й, когда я раскомментирую ani.save('dynamic_images.mp4') Я получаю эту ошибку: TypeError: Объект 'MovieWriterRegistry' не является итератором. Этот еще больше беспокоит меня. Если у вас есть какое-либо решение по поводу этой последней проблемы, пожалуйста, дайте мне сейчас.

WolfGang1710.

1 Ответ

0 голосов
/ 12 апреля 2020

Как вы можете прочитать в документации по методу Animation.save, записывающим устройством по умолчанию является 'ffmpeg'. Поэтому вам нужно установить ffmpeg, чтобы он работал.

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