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
figsizelors de la création de nouvelles figures - Ajuster la taille de figures existantes
- Utiliser
rcParamspour 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âche | Meilleure méthode | Exemple |
|---|---|---|
| Définir la taille d’une nouvelle figure | plt.figure(figsize=(w, h)) | plt.figure(figsize=(8, 6)) |
| Changer la taille d’une figure existante | fig.set_size_inches(w, h) | fig.set_size_inches(12, 4) |
| Définir une taille par défaut globale | plt.rcParams["figure.figsize"] = ... | (12, 6) |
| Définir la taille dans un graphique Pandas | df.plot(figsize=(w, h)) | (10, 5) |
| Utiliser des centimètres | Convertir cm → pouces | w_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éthode | Quand l’utiliser | Exemple |
|---|---|---|
figure(figsize=...) | Créer une figure entièrement nouvelle | Plus recommandé |
set_size_inches() | Redimensionner une figure existante | Idéal pour les figures auto-générées |
plt.rcParams["figure.figsize"] | Définir une valeur par défaut globale en notebook | Plus courant en EDA |
matplotlib.rc("figure", figsize=...) | Définir des valeurs globales dans un script | Meilleur pour la production |
| Conversion en centimètres | Contrainte académique, directives d’éditeurs | Pour les articles LaTeX |
df.plot(figsize=...) | Workflow avec Pandas | Pratique pour l’EDA rapide |
⚠️ Dépannage : quand figsize ne fonctionne pas (problèmes courants)
1. Jupyter Notebook ignore figsize
Correctif :
%matplotlib inline2. 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'] = False5. 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 :
À utiliser dans Jupyter :
pip install pygwalker
import pygwalker as pyg
gwalker = pyg.walk(df)Ou à essayer en ligne :
Foire aux questions
-
Comment définir la taille d’une figure dans Matplotlib ?
Utilisezfigure(figsize=(largeur, hauteur)). -
Comment redimensionner une figure existante ?
Utilisezfig.set_size_inches(w, h). -
Puis-je changer la taille des figures dans les graphiques Pandas ?
Oui, viafigsize=(w, h).
