Création de plusieurs histogrammes avec Matplotlib

PythonPythonBeginner
Pratiquer maintenant

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

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

Les histogrammes sont un excellent moyen de visualiser la distribution d'un ensemble de données, et Matplotlib est l'une des bibliothèques Python les plus populaires pour créer des visualisations de données. Dans ce laboratoire, nous allons utiliser Matplotlib pour créer des histogrammes côte à côte pour plusieurs ensembles de données.

Conseils sur la machine virtuelle

Une fois le démarrage de la machine virtuelle terminé, cliquez sur le coin supérieur gauche pour basculer vers l'onglet Carnet de notes pour accéder au carnet Jupyter pour pratiquer.

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

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.

Importez les bibliothèques nécessaires

Tout d'abord, nous devons importer les bibliothèques nécessaires pour notre code. Nous utiliserons Matplotlib et NumPy pour nos histogrammes :

import matplotlib.pyplot as plt
import numpy as np

Créez des ensembles de données d'exemple

Ensuite, nous allons créer des ensembles de données d'exemple pour les utiliser dans nos histogrammes. Nous allons créer trois ensembles de données avec 387 points de données chacun :

np.random.seed(19680801)
number_of_data_points = 387
labels = ["A", "B", "C"]
data_sets = [np.random.normal(0, 1, number_of_data_points),
             np.random.normal(6, 1, number_of_data_points),
             np.random.normal(-3, 1, number_of_data_points)]

Calculez les quantités pour le tracé

Avant de pouvoir créer nos histogrammes, nous devons calculer certaines quantités pour le tracé. Nous allons calculer la plage de nos ensembles de données, les ensembles de données regroupés par bins, les valeurs maximales de chaque bin et les emplacements x pour chaque histogramme :

hist_range = (np.min(data_sets), np.max(data_sets))
number_of_bins = 20
binned_data_sets = [
    np.histogram(d, range=hist_range, bins=number_of_bins)[0]
    for d in data_sets
]
binned_maximums = np.max(binned_data_sets, axis=1)
x_locations = np.arange(0, sum(binned_maximums), np.max(binned_maximums))

Tracez les histogrammes

Maintenant que nous avons calculé les quantités nécessaires pour le tracé, nous pouvons créer nos histogrammes. Nous utiliserons la méthode barh pour tracer des barres horizontales pour chaque histogramme :

## Les limites des bins sont les mêmes pour tous les histogrammes
bin_edges = np.linspace(hist_range[0], hist_range[1], number_of_bins + 1)
heights = np.diff(bin_edges)
centers = bin_edges[:-1] + heights / 2

## Parcourez et tracez chaque histogramme
fig, ax = plt.subplots()
for x_loc, binned_data in zip(x_locations, binned_data_sets):
    lefts = x_loc - 0.5 * binned_data
    ax.barh(centers, binned_data, height=heights, left=lefts)

ax.set_xticks(x_locations, labels)
ax.set_ylabel("Valeurs des données")
ax.set_xlabel("Ensembles de données")

Affichez les histogrammes

Enfin, nous pouvons afficher nos histogrammes en utilisant la méthode show :

plt.show()

Sommaire

Dans ce laboratoire, nous avons appris à créer des histogrammes côte à côte pour plusieurs ensembles de données à l'aide de Matplotlib. Nous avons calculé les quantités nécessaires pour le tracé et utilisé la méthode barh pour créer des barres horizontales pour chaque histogramme. Avec ces compétences, nous pouvons créer des visualisations informatives de nos données pour en tirer des conclusions et communiquer nos résultats à d'autres.