Matplotlib & Seaborn - Visualiser ses données en Python
Une analyse sans graphique, c'est un roman sans image. Matplotlib est la bibliothèque de référence pour dessiner en Python - et Seaborn vient s'appuyer dessus pour raccourcir le code sur les visuels statistiques courants.
Pourquoi ces deux bibliothèques ?
Matplotlibest la plus ancienne et la plus complète - elle te permet tout et n'importe quoi, mais avec un code parfois verbeux. C'est la base sur laquelle tout le reste (Seaborn, Plotly express pour certaines parties, les graphes de Pandas) est construit.
Seaborn est une surcouche de Matplotlib conçue pour les visuels statistiques courants : boxplots, heatmaps de corrélation, distributions, pairplots. Elle se branche directement sur un DataFrame pandas et réduit drastiquement le code pour un rendu esthétique par défaut.
En pratique, tu utilises les deux ensemble : Seaborn pour la structure, Matplotlib pour les détails (titre, axes, annotations).
Les graphes à connaître
Courbe simple (matplotlib)
Le point de départ. Titre + labels d'axes = minimum vital pour un graphique lisible.
import matplotlib.pyplot as plt
plt.plot(jours, ventes)
plt.title('Ventes de la semaine')
plt.xlabel('Jour')
plt.ylabel('Ventes (€)')
plt.show()Histogramme : distribution d'une variable
Pour voir la forme générale d'une série numérique : symétrique ou pas ? Un pic ou deux ? Des valeurs anormales ? L'histogramme répond d'un coup d'œil.
plt.hist(notes, bins=10)
plt.title('Distribution des notes')
plt.show()Boxplot (Seaborn) : comparer des distributions
Un boxplot par groupe : on voit d'un coup la médiane, l'étendue et les valeurs aberrantes de chaque catégorie. Idéal pour comparer des segments (départements, pays, produits…).
import seaborn as sns
sns.boxplot(data=df, x='dept', y='salaire')
plt.title('Distribution des salaires par département')
plt.show()Heatmap de corrélation
L'outil n°1 en début de projet data science. Affiche la matrice de corrélation entre toutes les variables numériques, avec un code couleur pour repérer immédiatement les paires fortement liées.
corr = df.corr()
sns.heatmap(corr, annot=True, cmap='RdYlGn', center=0)
plt.show()Scatter avec coloration par catégorie
Le paramètre hue de Seaborn colore chaque point selon une colonne catégorielle. Parfait pour détecter des patterns par segment sans écrire 10 lignes de code.
sns.scatterplot(data=df, x='anciennete', y='salaire', hue='dept')
plt.show()Subplots : plusieurs graphiques côte à côte
Pour un rapport, on compare souvent deux vues dans une même image.plt.subplotscrée une grille d'axes indépendants.
fig, axes = plt.subplots(1, 2, figsize=(10, 4))
axes[0].plot(jours, ventes_A)
axes[0].set_title('Produit A')
axes[1].plot(jours, ventes_B)
axes[1].set_title('Produit B')
plt.show()Matplotlib vs Seaborn vs Plotly
Matplotlib - le couteau suisse
Plus verbeux mais contrôle total. Obligatoire pour des visuels publiables (articles, thèses). Sortie PNG/PDF statique.
Seaborn - le raccourci stat
Code plus court pour les visuels courants (box, pair, heatmap). Rendu par défaut plus joli. Toujours statique (s'appuie sur Matplotlib).
Plotly- l'interactif
Graphiques zoomables, hover avec infos détaillées, parfait pour un dashboard web. Sortie HTML intégrable directement dans un site.
Passe à la pratique
30 exercices Matplotlib + Seaborn, avec rendu visuel direct dans la page. Pas besoin d'installer quoi que ce soit.
Créer mon compte gratuit