¿Cómo guardar la animación de Matplotlib?

En este artículo, aprenderemos cómo guardar la animación de Matplotlib. Los gráficos animados hechos con la ayuda de matplotlib se pueden guardar como videos en Python. Como podemos crear animaciones cautivadoras utilizando la biblioteca matplotlib. Si desea aprender a crear animaciones, aquí hay un enlace al artículo para crear animaciones usando matplotlib. En este artículo, aprenderemos cómo guardar animaciones en matplotlib. Para guardar una animación, podemos usar Animation.save() o Animation.to_html5_video() .

Animation.to_html5_video() devuelve la animación como una etiqueta de video HTML5. Guarda la animación como video codificado h264, que se puede mostrar directamente en la computadora portátil.

Ejemplo 1:

Python3

# importing required libraries
from matplotlib import pyplot as plt
import numpy as np
import matplotlib.animation as animation
from IPython import display
  
# initializing a figure
fig = plt.figure()
  
# labeling the x-axis and y-axis
axis = plt.axes(xlim=(0, 4),  ylim=(-1.5, 1.5))
  
# initializing a line variable
line, = axis.plot([], [], lw=3)
  
def animate(frame_number):
    x = np.linspace(0, 4, 1000)
  
    # plots a sine graph
    y = np.sin(2 * np.pi * (x - 0.01 * frame_number))
    line.set_data(x, y)
    line.set_color('green')
    return line,
  
  
anim = animation.FuncAnimation(fig, animate, frames=100, 
                               interval=20, blit=True)
fig.suptitle('Sine wave plot', fontsize=14)
  
# converting to an html5 video
video = anim.to_html5_video()
  
# embedding for the video
html = display.HTML(video)
  
# draw the animation
display.display(html)
plt.close()

Producción:

animate matplotlib

Para usar el método Animation.save() para guardar la animación, debemos proporcionar el parámetro de escritor. Aquí hay algunos escritores comunes disponibles para escribir la animación:

PillowWriter: se basa en la biblioteca de Pillows. Se prefiere cuando desea guardar la animación en formato gif.

FFMpegWriter: escritor ffmpeg basado en tuberías.

ImageMagickWriter: gif animado basado en tuberías.

AVConvWriter: escritor avconv basado en tuberías.

Ejemplo 2:

Python3

# importing required libraries
from matplotlib import pyplot as plt
import numpy as np
import matplotlib.animation as animation
from IPython import display
  
# initializing a figure
fig = plt.figure()
  
# labeling the x-axis and y-axis
axis = plt.axes(xlim=(0, 1000),  ylim=(0, 1000))
  
# lists storing x and y values
x, y = [], []
  
line, = axis.plot(0, 0)
  
  
def animate(frame_number):
    x.append(frame_number)
    y.append(frame_number)
    line.set_xdata(x)
    line.set_ydata(y)
    return line,
  
  
anim = animation.FuncAnimation(fig, animate, frames=1000, 
                               interval=20, blit=True)
fig.suptitle('Straight Line plot', fontsize=14)
  
# saving to m4 using ffmpeg writer
writervideo = animation.FFMpegWriter(fps=60)
anim.save('increasingStraightLine.mp4', writer=writervideo)
plt.close()

Producción:

save animation matplotlib

Publicación traducida automáticamente

Artículo escrito por d2anubis y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *