#matplotlib #matplotlib-animation
#matplotlib — файл #matplotlib-анимация #matplotlib
Вопрос:
Например, этот код работает нормально и сохраняет plt только тогда, когда plt.show() присутствует в конце. или же он просто запускается без сохранения каких-либо выходных данных.
import matplotlib
import matplotlib.pyplot as plt
import matplotlib.animation
import numpy as np
def animate(i):
line.set_ydata(np.sin(2*np.pi*i / 50)*np.sin(x))
#fig.canvas.draw() not needed see comment by @tacaswell
plt.savefig(str(i) ".png")
return line,
fig = plt.figure()
ax = fig.add_subplot(111)
ax.set_xlim(0, 2*np.pi)
ax.set_ylim(-1,1)
x = np.linspace(0, 2*np.pi, 200)
line, = ax.plot(x, np.zeros_like(x))
plt.draw()
ani = matplotlib.animation.FuncAnimation(fig, animate, frames=5, repeat=False)
plt.show()
PS — Я попытался использовать ani.save(writer="ffmpeg",dpi=200)
, и это работает нормально, но позже, когда я использую команды ffmpeg для преобразования последовательности изображений в анимацию, отображается недопустимая подпись PNG.
Кроме того, я новичок в этой области, поэтому мои претензии, если я не следовал какому-либо правильному методу.
Заранее благодарю.
Комментарии:
1. Вы можете закомментировать,
plt.savefig(str(i) ".png")
когда вы сохраняете с помощьюffpmeg
т.Е., Возможно,gif or mp4
сani.save
, и обратите внимание, чтоplt.show()
это не должно вызывать беспокойства, если вы удалите его, все равноplt.savefig(str(i) ".png")
будет работать2. Удаление
plt.show()
не сохраняет файлы png, я пробовал. А что касаетсяani.save
, то это работает нормально, но мне нужна последовательность изображений для преобразования в анимацию через ffmpeg на более позднем этапе.