Animações com FuncAnimation
Anime um gráfico quadro a quadro com FuncAnimation e salve como GIF.
Introdução
Uma animação é um gráfico redesenhado muitas vezes. FuncAnimation chama sua função update uma vez por quadro; ela muda os dados da linha que já existe em vez de desenhar um gráfico novo, e por isso é rápida.
ax.plot devolve uma lista de linhas, e line, = pega a única. update(frame) recebe 0, 1, 2... e desloca a onda um pouco a cada vez com set_ydata. frames é o número de quadros e interval a pausa entre eles em milissegundos. animation.save grava um GIF com PillowWriter; no editor online o GIF aparece no seu workspace e plt.show() mostra o último quadro.
Visualizador interativo
Aperte Play, arraste o controle de frame e mude o número de quadros e o intervalo. A linha destacada roda uma vez por quadro.
Exemplo de Matplotlib executável
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()
