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#
Piège
savefig() doit être appelé avant show() : après show(), la figure est vidée et le fichier sauvegardé sera blanc.