Сложность анимации графа matplotlib с помощью moviepy

Я должен сделать анимацию из большого числа (~ 90 000) фигур. Для контекста это график карты на каждый день с 1700 по 1950 год, с интересными событиями, отмеченными в соответствующие дни. Я могу сделать это с помощьюmatplotlib.animation.FuncAnimationи у меня есть код, который делает это успешно в течение небольшого периода тестирования. Однако с полным набором рисунков на рендеринг уходит непрактичное время, что приводит к очень большому файлу фильма. Я читал это, по-видимомуmoviepy предлагает преимущества как по скорости, так и по размеру файла. Тем не менее, у меня возникли проблемы с тем, чтобы заставить это работать - я считаю, что моя проблема в том, что я не понял, как правильно установитьduration а такжеfps аргументы.

Упрощенная версия моего кода:

import numpy as np
import matplotlib.pyplot as plt
from moviepy.video.io.bindings import mplfig_to_npimage
import moviepy.editor as mpy

fig = plt.figure()
ax = plt.axes()
x = np.random.randn(10,1)
y = np.random.randn(10,1)
p = plt.plot(x,y,'ko')

time = np.arange(2341973,2342373)

def animate(i):
   xn = x+np.sin(2*np.pi*time[i]/10.0)
   yn = y+np.cos(2*np.pi*time[i]/8.0)
   p[0].set_data(xn,yn)
   return mplfig_to_npimage(fig)

fps = 1 
duration = len(time)
animation = mpy.VideoClip(animate, duration=duration)
animation.write_videofile("test.mp4", fps=fps)

Однако это не дает ожидаемого результата создания фильма с одним кадром для каждого элементаtime и сохраняя это в .mp4. Я не вижу, где я ошибся, любая помощь или указатели будут оценены.

С наилучшими пожеланиями, Люк

Ответы на вопрос(2)

Ваш ответ на вопрос