Histogramme animé avec Matplotlib

Beginner

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

Introduction

Dans ce laboratoire, vous allez apprendre à créer un histogramme animé à l'aide de Matplotlib en Python. L'histogramme animé simule de nouvelles données arrivant et met à jour les hauteurs des rectangles avec les nouvelles données.

Conseils sur la machine virtuelle

Une fois le démarrage de la machine virtuelle terminé, cliquez dans le coin supérieur gauche pour basculer vers l'onglet Notebook pour accéder à Jupyter Notebook pour la pratique.

Parfois, vous devrez peut-être attendre quelques secondes pour que Jupyter Notebook ait fini de charger. La validation des opérations ne peut pas être automatisée en raison des limitations de Jupyter Notebook.

Si vous rencontrez des problèmes pendant l'apprentissage, n'hésitez pas à demander à Labby. Donnez votre feedback après la session, et nous résoudrons rapidement le problème pour vous.

Importation des bibliothèques

Tout d'abord, nous devons importer les bibliothèques nécessaires.

import matplotlib.pyplot as plt
import numpy as np
import matplotlib.animation as animation

Fixer la graine aléatoire et les bornes des bins

Fixez la graine aléatoire pour la reproductibilité et fixez les limites des bins.

## Fixing random state for reproducibility
np.random.seed(19680801)

## Fixing bin edges
HIST_BINS = np.linspace(-4, 4, 100)

Créer des données et un histogramme

Créez des données et un histogramme à l'aide de 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)

Créer une fonction d'animation

Nous devons créer une fonction animate qui génère de nouvelles données aléatoires et met à jour les hauteurs des rectangles.

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

Créer un conteneur de barres et une animation

En utilisant plt.hist, nous pouvons obtenir une instance de BarContainer, qui est une collection d'instances de Rectangle. Nous utilisons FuncAnimation pour configurer l'animation.

## 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()

Sommaire

Dans ce laboratoire, vous avez appris à créer un histogramme animé à l'aide de Matplotlib en Python. Vous avez commencé par importer les bibliothèques nécessaires, fixer la graine aléatoire et les bornes des bins, créer des données et un histogramme, créer une fonction d'animation et enfin créer un conteneur de barres et une animation. En suivant ces étapes, vous pouvez créer des histogrammes animés pour visualiser les données de manière dynamique.