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.
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 binsPlus de bins = plus de détail, mais plus de bruit. Règle empirique : √n bins pour n valeurs.
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.
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')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')).
Envie d'aller plus loin ? Découvrez nos formations certifiées Bac+2 à Bac+5 →