Introdução
Neste laboratório, você aprenderá como criar uma animação com Matplotlib. Especificamente, você aprenderá como pausar e retomar uma animação usando os métodos Animation.pause() e Animation.resume().
Dicas da VM
Após a inicialização da VM, clique no canto superior esquerdo para mudar para a aba Notebook e acessar o Jupyter Notebook para praticar.
Às vezes, pode ser necessário aguardar alguns segundos para que o Jupyter Notebook termine de carregar. A validação das operações não pode ser automatizada devido a limitações no Jupyter Notebook.
Se você enfrentar problemas durante o aprendizado, sinta-se à vontade para perguntar ao Labby. Forneça feedback após a sessão, e resolveremos o problema prontamente para você.
Importar Bibliotecas
Nesta etapa, importaremos as bibliotecas necessárias para criar uma animação com Matplotlib.
import matplotlib.pyplot as plt
import numpy as np
import matplotlib.animation as animation
Definir a Animação
Nesta etapa, definiremos a animação que queremos criar. Criaremos uma animação que exibe uma distribuição normal que se move para a direita a cada quadro.
class PauseAnimation:
def __init__(self):
## Criar a figura e o eixo
fig, ax = plt.subplots()
ax.set_title('Clique para pausar/retomar a animação')
## Criar os valores do eixo x
x = np.linspace(-0.1, 0.1, 1000)
## Começar com uma distribuição normal
self.n0 = (1.0 / ((4 * np.pi * 2e-4 * 0.1) ** 0.5)
* np.exp(-x ** 2 / (4 * 2e-4 * 0.1)))
## Criar o gráfico
self.p, = ax.plot(x, self.n0)
## Criar a animação
self.animation = animation.FuncAnimation(
fig, self.update, frames=200, interval=50, blit=True)
## Definir a animação como não pausada
self.paused = False
## Adicionar um evento de pressionamento de botão para alternar a pausa
fig.canvas.mpl_connect('button_press_event', self.toggle_pause)
def toggle_pause(self, *args, **kwargs):
## Alternar entre pausado e não pausado
if self.paused:
self.animation.resume()
else:
self.animation.pause()
self.paused = not self.paused
def update(self, i):
## Atualizar a distribuição normal
self.n0 += i / 100 % 5
self.p.set_ydata(self.n0 % 20)
return (self.p,)
Criar o Objeto de Animação
Nesta etapa, criaremos um objeto da classe PauseAnimation que definimos na etapa 2.
pa = PauseAnimation()
Mostrar a Animação
Nesta etapa, mostraremos a animação que criamos na etapa 2.
plt.show()
Resumo
Neste laboratório, você aprendeu como criar uma animação com Matplotlib e como pausar e retomar a animação usando os métodos Animation.pause() e Animation.resume(). Você também aprendeu como criar uma animação interativa que responde à entrada do usuário. Com este conhecimento, você pode criar suas próprias animações personalizadas e adicionar interatividade a elas.