W3docs

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 matplotlib

Si 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 matplotlib

Vous 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 plt

L'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 np

Comment 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 :

InterfaceQuand 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ètreExemples de valeursEffet
color'red', 'steelblue', '#2ca02c'Couleur de la ligne
linewidth1, 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 :

Was this page helpful?