Exercice 74 / 100

Matplotlib — Histogramme

Visualise la distribution de données avec un histogramme

Un histogramme représente la distribution d'une variable numérique. On découpe la plage en bins (intervalles) et on compte combien de valeurs tombent dans chacun.

Fonction de base

plt.hist(data, bins=20)

Paramètres clés

data → liste / array de valeurs bins → nombre d'intervalles (10–50 selon n) color → couleur des barres edgecolor → contour (utile pour distinguer les barres) alpha → transparence density → True : normalise pour que l'aire vaille 1 (densité) range=(a,b) → limite des bins

Plus de bins = plus de détail, mais plus de bruit. Règle empirique : √n bins pour n valeurs.

Le nombre de bins décide de ce qu'on voit : trop peu écrase la forme de la distribution, trop en fait ressortir le bruit, et la règle empirique donne la racine carrée du nombre de valeurs

Annoter la moyenne

plt.axvline(np.mean(data), color='red', linestyle='--', label=f'Moyenne: {np.mean(data):.1f}') plt.axvline(np.median(data), color='green', linestyle=':', label='Médiane') plt.legend()

axvline trace une ligne verticale, axhline une ligne horizontale. Très utile pour marquer une référence sur un graphique.

Exemple complet

import numpy as np np.random.seed(42) notes = np.random.normal(12, 3, 200)
plt.figure(figsize=(8, 5)) plt.hist(notes, bins=20, color='#9B6DFF', edgecolor='black', alpha=0.7) plt.axvline(np.mean(notes), color='red', linestyle='--', label=f'Moyenne: {np.mean(notes):.1f}') plt.xlabel('Notes') plt.ylabel('Fréquence') plt.title('Distribution des notes') plt.legend() plt.savefig('/tmp/hist.png')

Comparer plusieurs distributions

plt.hist(data_a, bins=20, alpha=0.5, label='A') plt.hist(data_b, bins=20, alpha=0.5, label='B') plt.legend()

L'alpha permet de voir le recouvrement.

Pour visualiser une distribution lissée (sans bins), utilise plutôt un kde plot (seaborn.kdeplot ou pandas .plot(kind='kde')).

exercise.py

Envie d'aller plus loin ? Découvrez nos formations certifiées Bac+2 à Bac+5 →