Histograma Animado Usando Matplotlib

Beginner

This tutorial is from open-source community. Access the source code

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.