Aller au contenu

matplotlib#

courant

Bibliothèque tierce

pip install matplotlib — ne fait pas partie de la bibliothèque standard.

Premier graphique#

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("Une parabole")
plt.show()          # ouvre la fenêtre / affiche la figure

Piège

plt.show() est bloquant en dehors d'un notebook : le script s'arrête tant que la fenêtre n'est pas fermée. Dans Jupyter, la figure s'affiche automatiquement sans show().

Plusieurs courbes sur le même graphique#

plt.plot(x, y, label="x²", color="blue", linestyle="--", marker="o")
plt.plot(x, [v * 2 for v in y], label="2x²", color="red")
plt.legend()          # nécessaire pour afficher les labels
plt.grid(True)
plt.show()

Types de graphiques courants#

plt.bar(["A", "B", "C"], [3, 7, 5])           # diagramme en barres
plt.scatter(x, y)                              # nuage de points
plt.hist(donnees, bins=20)                     # histogramme
plt.pie([30, 45, 25], labels=["A", "B", "C"])  # camembert

Subplots (plusieurs graphiques dans une figure)#

fig, axes = plt.subplots(1, 2, figsize=(10, 4))   # 1 ligne, 2 colonnes

axes[0].plot(x, y)
axes[0].set_title("Courbe 1")

axes[1].bar(["A", "B"], [3, 7])
axes[1].set_title("Courbe 2")

plt.tight_layout()   # évite que les titres/labels se chevauchent
plt.show()

Piège

Deux façons d'écrire coexistent : l'API pyplot (plt.plot(...), une figure "courante" implicite) et l'API orientée objet (fig, ax = plt.subplots() puis ax.plot(...)). Pour plusieurs graphiques ou du code réutilisable, préférer l'API orientée objet — plus explicite sur quelle figure/axe est modifié.

Sauvegarder une figure#

plt.savefig("graphique.png", dpi=150, bbox_inches="tight")

Piège

savefig() doit être appelé avant show() : après show(), la figure est vidée et le fichier sauvegardé sera blanc.