Introdução
Neste laboratório, você aprenderá como criar um histograma animado usando Matplotlib em Python. O histograma animado simulará a entrada de novos dados e atualizará as alturas dos retângulos com os novos dados.
Dicas para a 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
Primeiramente, precisamos importar as bibliotecas necessárias.
import matplotlib.pyplot as plt
import numpy as np
import matplotlib.animation as animation
Definir Semente Aleatória e Bins
Defina a semente aleatória para reprodutibilidade e fixe as bordas dos bins.
## Fixing random state for reproducibility
np.random.seed(19680801)
## Fixing bin edges
HIST_BINS = np.linspace(-4, 4, 100)
Criar Dados e Histograma
Crie dados e um histograma usando NumPy.
## histogram our data with numpy
data = np.random.randn(1000)
n, _, _ = plt.hist(data, HIST_BINS, lw=1, ec="yellow", fc="green", alpha=0.5)
Criar Função de Animação
Precisamos criar uma função animate que gera novos dados aleatórios e atualiza as alturas dos retângulos.
def animate(frame_number):
## simulate new data coming in
data = np.random.randn(1000)
n, _ = np.histogram(data, HIST_BINS)
for count, rect in zip(n, bar_container.patches):
rect.set_height(count)
return bar_container.patches
Criar Contêiner de Barras e Animação
Usar plt.hist nos permite obter uma instância de BarContainer, que é uma coleção de instâncias Rectangle. Usamos FuncAnimation para configurar a animação.
## Using plt.hist allows us to get an instance of BarContainer, which is a
## collection of Rectangle instances. Calling prepare_animation will define
## animate function working with supplied BarContainer, all this is used to setup FuncAnimation.
fig, ax = plt.subplots()
_, _, bar_container = ax.hist(data, HIST_BINS, lw=1, ec="yellow", fc="green", alpha=0.5)
ax.set_ylim(top=55) ## set safe limit to ensure that all data is visible.
ani = animation.FuncAnimation(fig, animate, 50, repeat=False, blit=True)
plt.show()
Resumo
Neste laboratório, você aprendeu como criar um histograma animado usando Matplotlib em Python. Você começou importando as bibliotecas necessárias, definindo a semente aleatória e os bins, criando dados e o histograma, criando uma função de animação e, finalmente, criando o contêiner de barras e a animação. Seguindo esses passos, você pode criar histogramas animados para visualizar dados de forma dinâmica.