Débuter avec Matplotlib
Apprenez à installer Matplotlib, importer pyplot et créer votre premier graphique linéaire avec étiquettes, couleurs et options de personnalisation.
Cette page couvre tout ce dont vous avez besoin pour commencer à utiliser Matplotlib : comment l'installer, comment l'importer, comment la bibliothèque est structurée, et comment créer et personnaliser votre premier graphique. À la fin, vous disposerez d'un script fonctionnel qui produit un graphique linéaire entièrement annoté.
Installer Matplotlib
Matplotlib ne fait pas partie de la bibliothèque standard de Python, vous devez donc l'installer avant de pouvoir l'importer. Utilisez pip, le gestionnaire de paquets de Python :
pip install matplotlibSi vous travaillez dans un environnement virtuel (recommandé), activez-le d'abord, puis exécutez la commande ci-dessus. Pour confirmer que l'installation a réussi et vérifier la version :
python -m pip show matplotlibVous devriez voir une sortie comme :
Name: matplotlib
Version: 3.9.x
...Matplotlib nécessite Python 3.9 ou une version plus récente à partir de la série de versions 3.9.
Importer Matplotlib
Matplotlib est organisé en plusieurs sous-paquets. Pour le tracé quotidien, vous n'avez besoin que du module pyplot, qui est conventionnellement importé sous l'alias plt :
import matplotlib.pyplot as pltL'alias plt est la convention universelle dans la communauté Python. Son utilisation rend votre code cohérent avec les tutoriels, la documentation et le code que vous trouvez sur le web.
Si vous avez également besoin de tableaux numériques (courant lors de la génération de données à tracer), importez NumPy en même temps :
import matplotlib.pyplot as plt
import numpy as npComment Matplotlib est structuré
Comprendre la structure à deux couches de Matplotlib évite beaucoup de confusion :
- Figure — le conteneur de niveau supérieur. Pensez-y comme la toile ou la fenêtre. Une Figure peut contenir un ou plusieurs Axes.
- Axes — une zone de tracé unique avec son propre axe x, axe y, titre et données. Le mot « Axes » ne désigne pas uniquement les lignes d'axe ; c'est toute la région du graphique.
Matplotlib expose deux interfaces pour travailler avec ces objets :
| Interface | Quand l'utiliser |
|---|---|
| pyplot (machine à états) | Scripts interactifs rapides et notebooks |
| Orientée objet (OO) | Figures multi-panneaux, fonctions réutilisables, code de production |
L'interface pyplot gère la Figure et les Axes courants pour vous. L'interface OO vous donne des références explicites afin de contrôler chaque objet avec précision. Les deux produisent une sortie identique ; la différence réside dans l'organisation du code.
Créer votre premier graphique
La fonction plt.plot() trace une ligne à travers une séquence de paires (x, y). Passez deux listes de même longueur — une pour les valeurs x et une pour les valeurs y :
import matplotlib.pyplot as plt
x = [1, 2, 3, 4]
y = [1, 4, 9, 16]
plt.plot(x, y)
plt.show()plt.show() envoie la figure à l'écran. Dans un script terminal, l'exécution se met en pause jusqu'à ce que vous fermiez la fenêtre du graphique. Dans un notebook Jupyter, le graphique apparaît en ligne et plt.show() est optionnel.
Ajouter des étiquettes et un titre
Un graphique sans étiquettes est difficile à interpréter. Ajoutez des étiquettes d'axe et un titre avec trois appels d'une ligne chacun :
import matplotlib.pyplot as plt
x = [1, 2, 3, 4]
y = [1, 4, 9, 16]
plt.plot(x, y)
plt.xlabel('x')
plt.ylabel('y = x²')
plt.title('Square Numbers')
plt.show()plt.xlabel()— étiquette pour l'axe horizontal.plt.ylabel()— étiquette pour l'axe vertical.plt.title()— titre affiché au-dessus du graphique.
Personnaliser la couleur et le style de ligne
Passez des arguments nommés à plt.plot() pour modifier l'apparence de la ligne :
import matplotlib.pyplot as plt
x = [1, 2, 3, 4]
y = [1, 4, 9, 16]
plt.plot(x, y, color='steelblue', linewidth=2, linestyle='--')
plt.xlabel('x')
plt.ylabel('y = x²')
plt.title('Square Numbers')
plt.show()Options courantes :
| Paramètre | Exemples de valeurs | Effet |
|---|---|---|
color | 'red', 'steelblue', '#2ca02c' | Couleur de la ligne |
linewidth | 1, 2, 3 | Épaisseur de la ligne en points |
linestyle | '-', '--', ':', '-.' | Continu, tirets, pointillés, tiret-point |
Vous pouvez également utiliser une chaîne de format abrégée comme troisième argument positionnel. 'r--' signifie rouge en tirets, 'bs' signifie carrés bleus, 'g^' signifie triangles verts :
plt.plot(x, y, 'r--')Définir les limites des axes
Par défaut, Matplotlib choisit des limites d'axe qui s'adaptent aux données. Vous pouvez les remplacer :
import matplotlib.pyplot as plt
x = [1, 2, 3, 4]
y = [1, 4, 9, 16]
plt.plot(x, y)
plt.xlim(0, 5)
plt.ylim(0, 20)
plt.show()plt.xlim(min, max) et plt.ylim(min, max) définissent la plage visible de chaque axe. C'est utile lorsque vous souhaitez mettre en évidence une région spécifique ou maintenir des axes cohérents sur plusieurs graphiques.
Tracer plusieurs lignes
Appelez plt.plot() plusieurs fois avant plt.show() pour superposer plusieurs lignes sur les mêmes Axes. Ajoutez un argument label à chaque appel, puis appelez plt.legend() pour afficher la légende :
import matplotlib.pyplot as plt
x = [1, 2, 3, 4, 5]
y_sq = [1, 4, 9, 16, 25]
y_cb = [1, 8, 27, 64, 125]
plt.plot(x, y_sq, color='steelblue', label='x²')
plt.plot(x, y_cb, color='tomato', label='x³')
plt.xlabel('x')
plt.ylabel('y')
plt.title('Comparing Growth')
plt.legend()
plt.show()plt.legend() lit la chaîne label de chaque appel plot() et construit la légende automatiquement. Placez-le avant plt.show().
L'interface orientée objet
Pour tout ce qui va au-delà d'un simple graphique unique, l'interface OO est plus claire et plus facile à maintenir. Créez une Figure et un ou plusieurs Axes avec plt.subplots(), puis appelez des méthodes directement sur l'objet ax :
import matplotlib.pyplot as plt
x = [1, 2, 3, 4, 5]
y_sq = [1, 4, 9, 16, 25]
y_cb = [1, 8, 27, 64, 125]
fig, ax = plt.subplots()
ax.plot(x, y_sq, color='steelblue', label='x²')
ax.plot(x, y_cb, color='tomato', label='x³')
ax.set_xlabel('x')
ax.set_ylabel('y')
ax.set_title('Comparing Growth')
ax.legend()
ax.grid(True)
plt.show()Les noms de méthodes OO reflètent les fonctions pyplot avec un préfixe set_ : plt.xlabel() devient ax.set_xlabel(), plt.title() devient ax.set_title(), et ainsi de suite. La référence explicite ax rend sans ambiguïté quel graphique vous modifiez — essentiel lorsqu'une Figure contient plusieurs sous-graphiques.
Enregistrer un graphique dans un fichier
Appelez plt.savefig() à la place de (ou en plus de) plt.show() pour écrire la figure sur le disque :
import matplotlib.pyplot as plt
x = [1, 2, 3, 4]
y = [1, 4, 9, 16]
plt.plot(x, y, color='steelblue', linewidth=2)
plt.xlabel('x')
plt.ylabel('y = x²')
plt.title('Square Numbers')
plt.savefig('square_numbers.png', dpi=150, bbox_inches='tight')Matplotlib déduit le format de fichier à partir de l'extension. Formats courants : .png, .pdf, .svg, .jpg. L'argument dpi contrôle la résolution (150 à 300 dpi est typique pour les rapports). bbox_inches='tight' supprime les espaces vides sur les bords.
Erreurs courantes
N'appelez plt.show() qu'une seule fois. L'appeler plusieurs fois dans un script peut produire des figures vides, car Matplotlib efface la figure courante après l'avoir affichée.
L'ordre est important avec pyplot. Les appels de personnalisation (plt.xlabel(), plt.title(), etc.) doivent venir avant plt.show().
Réutiliser une figure. Si vous construisez un graphique dans une boucle et oubliez de l'effacer, les données des itérations précédentes s'accumulent. Appelez plt.clf() (effacer la figure) ou plt.close() entre les itérations, ou créez un nouveau fig, ax = plt.subplots() à chaque fois.
Backends non interactifs. Sur des serveurs sans affichage (CI, conteneurs Docker), plt.show() peut générer une erreur. Définissez le backend avant d'importer pyplot :
import matplotlib
matplotlib.use('Agg') # non-interactive PNG backend
import matplotlib.pyplot as pltÉtapes suivantes
Maintenant que vous pouvez produire un graphique de base, explorez les chapitres dédiés :
- Matplotlib Pyplot — exploration approfondie des fonctions pyplot et des types de graphiques
- Matplotlib Line Plots — styliser les lignes, les marqueurs et le remplissage entre courbes
- Matplotlib Labels — étiquettes d'axe, titres, annotations
- Matplotlib Markers — marqueurs de points de données et leurs styles
- Matplotlib Grid — ajouter et configurer des lignes de grille
- Matplotlib Subplots — organiser plusieurs graphiques dans une seule figure
- Matplotlib Bar Charts — graphiques à barres verticales et horizontales
- Matplotlib Scatter Plots — graphiques de dispersion à deux variables
- Matplotlib Histograms — distributions de fréquences
- Matplotlib Pie Charts — données proportionnelles