#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