- 1
- Créer deux panneaux côte à côte dans une figure de 10 × 4 pouces.
Annexe C — Matplotlib et Seaborn
Matplotlib construit la figure et contrôle ses éléments; Seaborn simplifie les graphiques statistiques à partir d’un tableau pandas. Dans le cours, les deux sont utilisés ensemble:
Chaque entrée ci-dessous donne l’objectif, les arguments courants et un exemple minimal. Les liens « Documentation officielle » ouvrent la référence complète.
Matplotlib
plt.subplots()
Objectif: créer une figure (fig) et un ou plusieurs axes (ax).
Arguments principaux:
nrows(int): nombre de lignes de panneaux;ncols(int): nombre de colonnes de panneaux;figsize(tuple[float, float]): largeur et hauteur de la figure en pouces;sharex(bool): utiliser la même échelle horizontale dans tous les panneaux;sharey(bool): utiliser la même échelle verticale dans tous les panneaux.
Exemple:
À retenir: la figure est le contenant; chaque axe est une zone de tracé.
ax.plot()
Objectif: tracer une ligne reliant des coordonnées.
Arguments principaux:
x(Seriesou tableau numérique): coordonnées horizontales, placées dans l’ordre fourni;y(Seriesou tableau numérique): coordonnées verticales associées àx;color(str): couleur de la ligne, par exemple"tab:red";linestyle(str): style de la ligne, par exemple"--";label(str): texte affiché dans la légende.
Exemple:
- 1
-
Tracer les prédictions dans l’ordre de
aire.
À retenir: trier x avant de tracer une courbe évite les zigzags artificiels.
ax.axhline()
Objectif: ajouter une ligne horizontale de référence.
Arguments principaux:
y(float): position de la ligne sur l’axe vertical;color(str): couleur de la ligne;linestyle(str): style de la ligne, par exemple":"ou"--".
Exemple:
À retenir: une ligne de référence aide l’interprétation, mais ne remplace pas les données.
ax.axvline()
Objectif: ajouter une ligne verticale de référence.
Arguments principaux:
x(float): position de la ligne sur l’axe horizontal;color(str): couleur de la ligne;linestyle(str): style de la ligne;label(str): texte affiché dans la légende.
Exemple:
- 1
- Situer la médiane sur une distribution.
À retenir: la ligne matérialise une valeur déjà calculée; elle ne constitue pas une nouvelle observation.
ax.fill_between()
Objectif: colorer la région comprise entre deux courbes, par exemple les bornes d’un intervalle.
Arguments principaux:
x(Seriesou tableau numérique): coordonnées horizontales communes aux deux limites;y1(Seriesou tableau numérique): limite inférieure de la zone;y2(Seriesou tableau numérique): limite supérieure de la zone;color(str): couleur de remplissage;alpha(float): opacité comprise entre0et1;label(str): texte affiché dans la légende.
Exemple:
- 1
- Représente l’intervalle autour de la réponse moyenne prédite.
À retenir: la zone colorée ne montre pas automatiquement un intervalle de prédiction; son sens dépend des deux bornes fournies.
Axes et titres
Objectif: rendre la figure compréhensible hors du notebook.
Arguments principaux:
xlabel,ylabeloulabel(str): texte décrivant la variable et son unité;title(str): titre de l’axe ou de la légende.
Exemple:
- 1
- Nommer la variable et son unité sur l’axe horizontal.
- 2
- Nommer la variable réponse.
- 3
- Donner au graphique un message descriptif.
- 4
- Afficher et titrer la légende.
À retenir: une figure scientifique doit identifier variables, unités, groupes et contexte.
fig.tight_layout()
Objectif: ajuster automatiquement les marges entre les panneaux d’une figure.
Arguments principaux:
- Aucun argument n’est nécessaire dans les cas utilisés dans le cours.
Exemple:
À retenir: cette méthode modifie la mise en page, pas les données ni leur interprétation.
Échelles logarithmiques
Objectif: afficher un axe sur une échelle logarithmique.
Arguments principaux:
value(str): type d’échelle;"log"sélectionne une échelle logarithmique.
Exemple:
À retenir: pour un histogramme en log, calculez aussi des bornes de classes logarithmiques; changer seulement l’axe produit des classes visuellement inégales.
Seaborn
sns.histplot()
Objectif: représenter la distribution d’une variable numérique.
Arguments principaux:
data(DataFrame): tableau contenant les observations;x(str): nom de la colonne numérique représentée;bins(int): nombre de classes de l’histogramme;binwidth(float): largeur de chaque classe, dans l’unité dex;hue(str): nom d’une colonne catégorielle utilisée pour séparer les groupes par couleur;ax(Axes): axe Matplotlib dans lequel tracer le graphique.
Exemple:
À retenir: vérifiez si la conclusion dépend fortement du choix des classes.
sns.ecdfplot()
Objectif: représenter, pour chaque valeur de l’axe horizontal, la proportion d’observations qui lui est inférieure ou égale.
Arguments principaux:
data(DataFrame): tableau contenant les observations;x(str): nom de la colonne numérique cumulée;hue(str): nom d’une colonne catégorielle séparant les courbes;stat(str): grandeur cumulée;"proportion"produit une échelle de0à1;complementary(bool): afficher la proportion supérieure plutôt qu’inférieure à chaque valeur;ax(Axes): axe Matplotlib dans lequel tracer le graphique.
Exemple:
- 1
- Tracer la distribution cumulative sans choisir de classes d’histogramme.
À retenir: l’ECDF conserve chaque observation et permet de lire directement des proportions ou des quantiles.
sns.boxplot()
Objectif: comparer médiane, quartiles et valeurs éloignées entre groupes.
Arguments principaux:
data(DataFrame): tableau contenant les observations;x(str): nom de la variable placée sur l’axe horizontal;y(str): nom de la variable placée sur l’axe vertical;order(list[str]): ordre d’affichage des catégories;hue(str): nom d’une colonne catégorielle séparant les boîtes;log_scale(bool): afficher l’axe numérique sur une échelle logarithmique;ax(Axes): axe Matplotlib dans lequel tracer le graphique.
Exemple:
- 1
- Comparer les distributions sans supposer qu’elles sont symétriques.
À retenir: la boîte ne montre pas directement l’effectif ni toutes les observations.
sns.violinplot()
Objectif: représenter une estimation lissée de la densité d’une variable numérique, éventuellement séparée par catégories.
Arguments principaux:
data(DataFrame): tableau contenant les observations;x(strouSeries): variable numérique ou catégorielle placée horizontalement;y(str): nom de la variable placée verticalement lorsquedataest utilisé;hue(str): nom d’une colonne catégorielle séparant les distributions;inner(str): résumé dessiné dans le violon, par exemple"quart";cut(float): prolongement de la densité au-delà des observations;0l’empêche;density_norm(str): règle utilisée pour normaliser la largeur des violons;log_scale(bool): estimer et afficher la variable sur une échelle logarithmique;ax(Axes): axe Matplotlib dans lequel tracer le graphique.
Exemple:
- 1
- Tracer une densité symétrique autour d’un axe central.
- 2
- Utiliser les volumes comme variable numérique.
- 3
- Ajouter la médiane et les quartiles à l’intérieur du violon.
- 4
- Limiter l’estimation à l’étendue des observations.
- 5
- Estimer et afficher la densité dans l’espace logarithmique.
- 6
- Placer le graphique dans l’axe existant.
À retenir: la largeur représente une densité estimée, pas un effectif. Sa forme dépend du lissage et devient peu fiable avec un petit échantillon.
sns.boxenplot()
Objectif: représenter des quantiles emboîtés afin de détailler le centre et les queues d’une distribution.
Arguments principaux:
data(DataFrame): tableau contenant les observations;x(strouSeries): variable numérique ou catégorielle placée horizontalement;y(str): nom de la variable placée verticalement lorsquedataest utilisé;hue(str): nom d’une colonne catégorielle séparant les distributions;order(list[str]): ordre d’affichage des catégories;k_depth(str): profondeur des quantiles emboîtés;outlier_prop(float): proportion attendue d’observations affichées comme éloignées;log_scale(bool): afficher l’axe numérique sur une échelle logarithmique;ax(Axes): axe Matplotlib dans lequel tracer le graphique.
Exemple:
- 1
- Construire un letter-value plot à partir de quantiles successifs.
- 2
- Utiliser les volumes comme variable numérique.
- 3
- Afficher les quantiles dans l’espace logarithmique.
- 4
- Placer le graphique dans l’axe existant.
À retenir: le boxenplot est surtout informatif pour les grands échantillons; avec peu d’observations, les quantiles des queues sont instables et difficiles à interpréter.
sns.stripplot()
Objectif: montrer les observations individuelles réparties selon une catégorie.
Arguments principaux:
data(DataFrame): tableau contenant les observations;x(str): nom de la variable placée sur l’axe horizontal;y(str): nom de la variable placée sur l’axe vertical;hue(str): nom d’une colonne catégorielle utilisée pour la couleur;jitter(bool): décaler légèrement les points pour limiter leur superposition;alpha(float): opacité comprise entre0et1;size(float): taille des marqueurs;ax(Axes): axe Matplotlib dans lequel tracer le graphique.
Exemple:
- 1
- Superposer les analyses individuelles à un résumé de groupe.
À retenir: la transparence et une petite taille réduisent le chevauchement sans supprimer les observations.
sns.scatterplot()
Objectif: représenter la relation entre deux variables numériques et, si nécessaire, encoder d’autres dimensions.
Arguments principaux:
data(DataFrame): tableau contenant les observations;x(str): nom de la colonne numérique placée en abscisse;y(str): nom de la colonne numérique placée en ordonnée;hue(str): nom d’une colonne utilisée pour la couleur;style(str): nom d’une colonne catégorielle utilisée pour la forme des marqueurs;size(stroufloat): colonne ou valeur déterminant la taille des marqueurs;alpha(float): opacité comprise entre0et1;ax(Axes): axe Matplotlib dans lequel tracer le graphique.
Exemple:
- 1
- Encoder deux variables supplémentaires par couleur et symbole.
À retenir: chaque encodage doit répondre à une question; trop de dimensions rendent la figure illisible.
sns.lineplot()
Objectif: tracer une ligne à partir de colonnes d’un DataFrame.
Arguments principaux:
data(DataFrame): tableau contenant les observations;x(str): nom de la colonne définissant l’ordre horizontal;y(str): nom de la colonne numérique représentée;hue(str): nom d’une colonne séparant plusieurs lignes par couleur;color(str): couleur unique de la ligne;estimator(strou fonction): résumé appliqué lorsque plusieurs valeurs partagent le mêmex;errorbar(strouNone): incertitude affichée autour de la ligne;ax(Axes): axe Matplotlib dans lequel tracer le graphique.
Exemple:
- 1
- Trace les valeurs prédites dans l’ordre de la variable en abscisse.
À retenir: triez explicitement les valeurs de x lorsque la ligne doit représenter une fonction ajustée.
sns.lmplot()
Objectif: représenter un nuage de points et une tendance linéaire dans un ou plusieurs panneaux.
Arguments principaux:
data(DataFrame): tableau contenant les observations;x(str): nom de la colonne utilisée comme prédicteur;y(str): nom de la colonne utilisée comme réponse;hue(str): nom d’une colonne séparant les groupes par couleur;col(str): nom d’une colonne créant un panneau par modalité;row(str): nom d’une colonne créant une ligne de panneaux;ci(intouNone): niveau de l’intervalle de confiance, ouNonepour le masquer;height(float): hauteur de chaque panneau en pouces;aspect(float): rapport largeur/hauteur de chaque panneau.
Exemple:
- 1
- Compare la forme de la relation dans plusieurs groupes avec le même encodage.
À retenir: les droites produites par lmplot() sont d’abord descriptives. Des effectifs ou domaines de \(x\) différents peuvent rendre leur comparaison trompeuse.
sns.heatmap()
Objectif: représenter une matrice numérique par des couleurs.
Arguments principaux:
data(DataFramenumérique): matrice dont les lignes et colonnes seront représentées;annot(bool): afficher les valeurs numériques dans les cellules;fmt(str): format des valeurs affichées, par exemple".2f";cmap(str): palette de couleurs;center(float): valeur placée au centre de la palette divergente;vmin(float): borne inférieure de l’échelle de couleurs;vmax(float): borne supérieure de l’échelle de couleurs.
Exemple:
- 1
- Conserver une échelle symétrique commune à toutes les corrélations.
À retenir: une heatmap aide à repérer; les coefficients et effectifs restent nécessaires pour conclure.
sns.pairplot()
Objectif: explorer plusieurs distributions et relations deux à deux.
Arguments principaux:
data(DataFrame): tableau contenant les observations;vars(list[str]): noms des colonnes numériques à combiner deux à deux;hue(str): nom d’une colonne catégorielle utilisée pour distinguer les groupes;corner(bool): masquer la moitié supérieure redondante de la matrice;diag_kind(str): graphique placé sur la diagonale, par exemple"hist".
Exemple:
- 1
- Limiter volontairement le nombre de variables pour garder la figure lisible.
À retenir: pairplot sert à choisir une question bivariée; ce n’est pas la figure finale d’une conclusion.