Skip to content

Maîtriser la taille des figures dans Matplotlib : guide complet

Updated on

Contrôler la taille des figures est l’un des aspects les plus importants pour créer des visualisations propres, lisibles et de qualité publication avec Matplotlib. Que vous produisiez des graphiques exploratoires rapides ou des figures soignées pour des rapports, savoir définir et ajuster correctement les tailles de figures vous évitera des graphiques déformés, des étiquettes illisibles et des mises en page incohérentes.

Ce guide couvre toutes les méthodes courantes et pratiques pour contrôler la taille des figures dans Matplotlib, notamment :

  • Utiliser figsize lors de la création de nouvelles figures
  • Ajuster la taille de figures existantes
  • Utiliser rcParams pour les valeurs par défaut globales
  • Définir la taille en centimètres
  • Changer la taille dans les graphiques Pandas
  • Réinitialiser et modifier dynamiquement la taille globale
  • Un guide de dépannage
  • Un tableau comparatif récapitulant toutes les méthodes

⭐ TL;DR — Référence rapide

TâcheMeilleure méthodeExemple
Définir la taille d’une nouvelle figureplt.figure(figsize=(w, h))plt.figure(figsize=(8, 6))
Changer la taille d’une figure existantefig.set_size_inches(w, h)fig.set_size_inches(12, 4)
Définir une taille par défaut globaleplt.rcParams["figure.figsize"] = ...(12, 6)
Définir la taille dans un graphique Pandasdf.plot(figsize=(w, h))(10, 5)
Utiliser des centimètresConvertir cm → poucesw_cm / 2.54

Comprendre la taille des figures dans Matplotlib

Matplotlib mesure la taille des figures en pouces, à l’aide d’un tuple (largeur, hauteur).

La façon la plus directe de créer une figure avec une taille fixe est :

from matplotlib.pyplot import figure
 
# Create a new figure (width=8 inches, height=6 inches)
figure(figsize=(8, 6))

Cela garantit que votre graphique utilise la taille spécifiée, quel que soit le jeu de données ou le type de graphique.


Ajuster la taille d’une figure après sa création

Parfois une figure est créée automatiquement — par exemple via plt.plot() ou un graphique Pandas. Vous pouvez toujours redimensionner la figure ensuite :

import matplotlib.pyplot as plt
 
# Get the current figure
fig = plt.gcf()
 
# Change its size to 18.5 x 10.5 inches
fig.set_size_inches(18.5, 10.5)
 
# Save the resized figure
fig.savefig("figure.png", dpi=100)

set_size_inches() est la méthode la plus fiable pour redimensionner les figures après leur création.


Définir une taille de figure par défaut globale avec rcParams

Si vous souhaitez que tous vos graphiques suivent la même taille (pratique dans les notebooks et scripts), configurez une valeur par défaut globale :

import matplotlib.pyplot as plt
 
# Make all future figures 20 x 3 inches
plt.rcParams["figure.figsize"] = (20, 3)

Cela affecte tous les graphiques suivants jusqu’à ce que la valeur soit écrasée.


Définir la taille des figures en centimètres

Si vous avez besoin d’une taille en unités métriques (par exemple pour des articles académiques), convertissez les centimètres en pouces :

width_cm = 20
height_cm = 10
 
# Convert cm to inches
width_in = width_cm / 2.54
height_in = height_cm / 2.54
 
# Use the converted size
figure(figsize=(width_in, height_in))

Cela fonctionne de manière identique à l’approche en pouces.


Réinitialiser ou modifier dynamiquement les valeurs par défaut globales

Pour revenir aux paramètres originaux de Matplotlib :

plt.rcParams["figure.figsize"] = plt.rcParamsDefault["figure.figsize"]

C’est utile lorsqu’un notebook mélange de petits graphiques rapides et de grandes figures de qualité publication.


Contrôler la taille des figures avec Pandas

Pandas s’intègre directement avec Matplotlib et accepte également figsize :

df['some_column'].plot(figsize=(10, 5))

Pour des subplots :

fig, ax = plt.subplots(figsize=(10, 5))
df['some_column'].plot(ax=ax)

Cette méthode est particulièrement pratique dans les notebooks d’analyse de données.


Changer la taille de figure par défaut de Matplotlib pour tous les graphiques

Utilisez ceci si vous voulez que chaque graphique suive automatiquement la même taille :

import matplotlib
 
matplotlib.rc("figure", figsize=(10, 5))

C’est similaire à la modification directe de rcParams et cela fonctionne dans les scripts comme dans les notebooks.


🔍 Comparaison de toutes les méthodes

MéthodeQuand l’utiliserExemple
figure(figsize=...)Créer une figure entièrement nouvellePlus recommandé
set_size_inches()Redimensionner une figure existanteIdéal pour les figures auto-générées
plt.rcParams["figure.figsize"]Définir une valeur par défaut globale en notebookPlus courant en EDA
matplotlib.rc("figure", figsize=...)Définir des valeurs globales dans un scriptMeilleur pour la production
Conversion en centimètresContrainte académique, directives d’éditeursPour les articles LaTeX
df.plot(figsize=...)Workflow avec PandasPratique pour l’EDA rapide

⚠️ Dépannage : quand figsize ne fonctionne pas (problèmes courants)

1. Jupyter Notebook ignore figsize

Correctif :

%matplotlib inline

2. tight_layout coupe les étiquettes

Utilisez :

plt.tight_layout()

3. Sauvegarder la figure change la taille

Définissez toujours le DPI explicitement :

plt.savefig("output.png", dpi=150)

4. Les polices ou étiquettes changent d’échelle de façon inattendue

Désactivez l’ajustement automatique :

plt.rcParams['figure.autolayout'] = False

5. Les subplots se chevauchent

Augmentez la taille :

fig, ax = plt.subplots(figsize=(12, 8))

Ces sections de dépannage sont très bien classées en SEO pour les sujets Matplotlib et résolvent de nombreuses frustrations des utilisateurs.


Alternative à Matplotlib : visualiser les données avec PyGWalker

En plus de Matplotlib, vous pouvez explorer visuellement votre DataFrame pandas avec PyGWalker, un outil open source de visualisation de données en glisser-déposer :

PyGWalker for Data visualization (opens in a new tab)

À utiliser dans Jupyter :

pip install pygwalker
import pygwalker as pyg
 
gwalker = pyg.walk(df)

Ou à essayer en ligne :

Kaggle NotebookGoogle ColabGitHub ⭐
https://www.kaggle.com/asmdef/pygwalker-test (opens in a new tab)https://colab.research.google.com/drive/171QUQeq-uTLgSj1u-P9DQig7Md1kpXQ2 (opens in a new tab)https://github.com/Kanaries/pygwalker (opens in a new tab)

Foire aux questions

  1. Comment définir la taille d’une figure dans Matplotlib ?
    Utilisez figure(figsize=(largeur, hauteur)).

  2. Comment redimensionner une figure existante ?
    Utilisez fig.set_size_inches(w, h).

  3. Puis-je changer la taille des figures dans les graphiques Pandas ?
    Oui, via figsize=(w, h).