Matplotlib avanzado

Animaciones con FuncAnimation

Anima un gráfico fotograma a fotograma con FuncAnimation y guárdalo como GIF.

Introducción

Una animación es un gráfico que se redibuja muchas veces. FuncAnimation llama a tu función update una vez por fotograma; la función cambia los datos de la línea existente en lugar de dibujar un gráfico nuevo, y así va rápido.

ax.plot devuelve una lista de líneas y line, = toma la única. update(frame) recibe 0, 1, 2... y desplaza la onda un poco cada vez con set_ydata. frames es el número de fotogramas e interval la pausa entre ellos en milisegundos. animation.save escribe un GIF con PillowWriter; en el editor online el GIF aparece en tu espacio de trabajo y plt.show() muestra el último fotograma.

Visualizador interactivo

Pulsa Play, arrastra el control de frame y cambia el número de fotogramas y el intervalo. La línea resaltada se ejecuta una vez por fotograma.

Ejemplo de Matplotlib ejecutable

Matplotlib
Ejecutar código →
main.py
import matplotlib.pyplot as plt
import numpy as np
from matplotlib.animation import FuncAnimation, PillowWriter

x = np.linspace(0, 2 * np.pi, 200)
fig, ax = plt.subplots(figsize=(7, 4))
line, = ax.plot(x, np.sin(x))
ax.set_ylim(-1.2, 1.2)
ax.set_title("A moving wave")

def update(frame):
    line.set_ydata(np.sin(x + frame / 10))
    return line,

animation = FuncAnimation(fig, update, frames=60, interval=50)
animation.save("wave.gif", writer=PillowWriter(fps=20))
print("Saved wave.gif")
plt.show()
Obtén un botón Run para este ejemplo El gráfico que dibuja este código
Animaciones con FuncAnimation