Пустая анимация Matplotlib для первых нескольких кадров в сохраненном файле .mp4 - PullRequest
0 голосов
/ 07 августа 2020

Я пытаюсь запустить довольно медленную анимацию (500 миллисекунд на кадр), используя платформу Matplotlib FuncAnimation. Когда я делаю это и сохраняю результат в виде файла .mp4, первые несколько секунд всегда пусты, когда я использую приложение Windows 10 «Фильмы и ТВ», или зависают, когда я использую приложение «Windows Media Player». Мне это не нравится. Это ошибка, неправильное использование с моей стороны или неизбежный артефакт фреймворка?

Вот минимальный пример, взятый прямо из документации - я только что добавил ключевое слово interval=500 аргумент в FuncAnimation, а затем сохранил анимацию стандартным способом:

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

fig, ax = plt.subplots()
xdata, ydata = [], []
ln, = plt.plot([], [], 'ro')

def init():
    ax.set_xlim(0, 2*np.pi)
    ax.set_ylim(-1, 1)
    return ln,

def update(frame):
    xdata.append(frame)
    ydata.append(np.sin(frame))
    ln.set_data(xdata, ydata)
    return ln,

ani = FuncAnimation(fig, update, frames=np.linspace(0, 2*np.pi, 128),
                    init_func=init, interval=500, blit=True)
plt.show()

ani.save("Example.mp4", dpi=200)
...