Ajout de sous-graphiques
Lorsqu’il s’agit de comparer plusieurs visualisations ou de présenter différentes facettes d’un même jeu de données, il est souvent nécessaire de créer plusieurs graphiques dans une même figure. Les sous-graphiques (ou subplots) permettent d’organiser ces multiples tracés de façon claire et cohérente.
Matplotlib propose plusieurs outils puissants pour gérer les sous-graphiques : la fonction subplot
pour une organisation simple en grille, et la classe plus avancée GridSpec
, qui offre un contrôle précis sur la taille, la position et la disposition des sous-graphes.
Cette section vous expliquera comment créer, personnaliser et optimiser l’agencement de sous-graphiques, afin de rendre vos présentations visuelles plus complètes et professionnelles.
Fonctions :
-
plt.subplot()
La fonction plt.subplot() de Matplotlib permet de créer un seul sous-graphique dans une figure. Elle prend un numéro d'index qui spécifie où le sous-graphique doit être placé dans une grille de sous-graphes définie par l'utilisateur. Ce sous-graphique est ensuite utilisé pour tracer des graphiques spécifiques.
Importation :
import matplotlib.pyplot as plt
Attributs :
Paramètre Type Description Valeur par défaut nrows
int Nombre de lignes de sous-graphes. 1
ncols
int Nombre de colonnes de sous-graphes. 1
index
int Numéro de l'index du sous-graphique à créer (commence à 1). None
Exemple de code :
import matplotlib.pyplot as plt # Créer une figure avec 2 lignes et 2 colonnes de sous-graphes plt.subplot(2, 2, 1) # Premier sous-graphique plt.plot([1, 2, 3], [1, 4, 9]) plt.subplot(2, 2, 2) # Deuxième sous-graphique plt.plot([1, 2, 3], [9, 4, 1]) plt.subplot(2, 2, 3) # Troisième sous-graphique plt.plot([1, 2, 3], [1, 2, 3]) plt.subplot(2, 2, 4) # Quatrième sous-graphique plt.plot([1, 2, 3], [3, 2, 1]) plt.tight_layout() plt.show()
-
plt.subplots()
La fonction plt.subplots() de Matplotlib est utilisée pour créer plusieurs sous-graphes (axes) dans une figure. Elle permet de définir facilement le nombre de lignes et de colonnes de la grille de sous-graphes. Elle retourne une figure et une ou plusieurs axes, que l'on peut utiliser pour tracer différents graphiques.
Importation :
import matplotlib.pyplot as plt
Attributs :
Paramètre Type Description Valeur par défaut nrows
int Nombre de lignes de sous-graphes. 1
ncols
int Nombre de colonnes de sous-graphes. 1
sharex
bool Si True
, tous les sous-graphes partageront le même axe X.False
sharey
bool Si True
, tous les sous-graphes partageront le même axe Y.False
figsize
tuple Dimensions de la figure (largeur, hauteur) en pouces. (6, 4)
dpi
int Densité de pixels de la figure. 100
facecolor
str Couleur de fond de la figure. 'w'
edgecolor
str Couleur des bords de la figure. 'w'
Exemple de code :
import matplotlib.pyplot as plt # Créer une figure avec 2 lignes et 3 colonnes de sous-graphes fig, axes = plt.subplots(nrows=2, ncols=3, figsize=(9, 6)) # Tracer un graphique simple dans chaque sous-graphe for ax in axes.flat: ax.plot([1, 2, 3], [1, 4, 9]) plt.tight_layout() plt.show()
-
gridspec.GridSpec()
La fonction gridspec.GridSpec() de Matplotlib permet de définir une grille de sous-graphes sur une figure. Elle permet de gérer de manière flexible la disposition des sous-graphes, notamment en ajustant la taille des lignes et des colonnes pour obtenir une présentation plus complexe et personnalisée des graphiques.
Importation :
import matplotlib.pyplot as plt import matplotlib.gridspec as gridspec
Attributs :
Paramètre Type Description Valeur par défaut nrows
int Nombre de lignes dans la grille de sous-graphes. 1
ncols
int Nombre de colonnes dans la grille de sous-graphes. 1
width_ratios
list Liste des rapports de largeur des colonnes (si vous souhaitez que certaines colonnes soient plus larges que d'autres). None
height_ratios
list Liste des rapports de hauteur des lignes (si vous souhaitez que certaines lignes soient plus hautes que d'autres). None
left
float Position du côté gauche de la grille en termes de fraction de la largeur totale de la figure (valeur entre 0 et 1). 0.125
right
float Position du côté droit de la grille en termes de fraction de la largeur totale de la figure (valeur entre 0 et 1). 0.9
top
float Position du côté supérieur de la grille en termes de fraction de la hauteur totale de la figure (valeur entre 0 et 1). 0.9
bottom
float Position du côté inférieur de la grille en termes de fraction de la hauteur totale de la figure (valeur entre 0 et 1). 0.1
Exemple de code :
import matplotlib.pyplot as plt import matplotlib.gridspec as gridspec # Créer une figure fig = plt.figure(figsize=(8, 6)) # Définir une grille 2x2 avec des tailles de lignes et de colonnes différentes gs = gridspec.GridSpec(nrows=2, ncols=2, width_ratios=[2, 1], height_ratios=[1, 2]) # Créer des sous-graphes dans chaque cellule de la grille ax1 = plt.subplot(gs[0, 0]) ax2 = plt.subplot(gs[0, 1]) ax3 = plt.subplot(gs[1, 0]) ax4 = plt.subplot(gs[1, 1]) # Tracer des graphiques simples ax1.plot([1, 2, 3], [1, 4, 9]) ax2.plot([1, 2, 3], [9, 4, 1]) ax3.plot([1, 2, 3], [1, 2, 3]) ax4.plot([1, 2, 3], [3, 2, 1]) plt.tight_layout() plt.show()