Как использовать plt.savefig() без использования plt.show() и конца matplotlib.animation.Функция анимации

#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 на более позднем этапе.