Сохранение анимации в matplotlib

#python #matplotlib #animation

#python #matplotlib #Анимация

Вопрос:

Я отрисовал 20-секундную анимацию в matplotlib.

 n = 2000
def update(curr):
    curr = curr*10
    if curr == n:
        a.event_source.stop()
    t = curr / 100
    plt.cla()
    rho_ = [2/(pi*(hbar**2)) * math.cos((((p1 - p2)*x)/(2*hbar))   (((E1 - E2)*t)/(2*hbar)))**2 for x in x]
    plt.plot(x, rho_)
    plt.gcf().subplots_adjust(bottom=0.15)
    plt.gca().set(yticklabels=[])
    plt.gca().tick_params(left=False)
    plt.gca().set_xlabel("X")
    plt.gca().set_title("Time evolution of probability density")
    plt.annotate(s = f"t = {t}s", xy = (0.9, 0.9), xycoords="figure fraction", fontsize=10)
    
fig = plt.figure(figsize=(9, 3.5))
a = animation.FuncAnimation(fig, update, interval=50)    
  

Чтобы сохранить эту анимацию, я использую

 a.save("probability_density_animation.avi")    
  

Каждый раз, когда я запускаю этот код, он сохраняет только первые пять секунд анимации. Как мне сохранить целых 20 секунд анимации?

Ответ №1:

Вы можете использовать line_ani.save('lines.mp4', writer=writer) для получения дополнительной информации ознакомьтесьhttps://matplotlib.org/gallery/animation/basic_example_writer_sgskip.html