Possibilités de Matplotlib
Matplotlib est un peu la boîte à outils de base pour réaliser des graphiques en Python. C’est l’une des bibliothèques les plus anciennes et les plus utilisées pour la visualisation de données.
Présentation
Matplotlib permet de créer des graphiques, simples ou plus complexes, et de les personnaliser avec des titres, des légendes, du texte…
Cette bibliothèque est souvent utilisée avec NumPy et pandas, ce qui en fait un pilier de l’écosystème data en Python.
Très flexible puisque presque tout est personnalisable, elle peut toutefois s’avérer verbeuse dans la réalisation de graphiques complexes (Seaborn est plus esthétique et plus simple pour représenter des statistiques).
Pyplot
Pyplot est un sous-module de Matplotlib. Son rôle est de fournir une interface simple et rapide pour créer des graphiques. Il crée automatiquement une figure et des axes. L’alias habituel de matplotlib.pyplot est plt.
Avec plt, on peut :
- Tracer : plt.plot(), plt.bar()… (voir ci-dessous les types de graphiques réalisables).
- Configurer : plt.title(), plt.xlabel(), plt.ylabel()
- Gérer l’affichage : plt.show(), plt.figure()
- Organiser : plt.subplot(), plt.subplots()
Types de graphiques
- Courbes : plot(x,y)
Exemple :
import matplotlib.pyplot as plt
x = [1, 2, 3, 4]
y = [10, 15, 13, 18]
plt.plot(x, y)
plt.title("Mon premier graphique")
plt.show()
On obtient ceci :

- Nuages de points : scatter(x,y)
Exemple : en page de régression linéaire simple avec R et Python, nous avons calculé les paramètres d’une régression avec Python sans toutefois l’illustrer avec le nuage de points et la droite de régression. C’est ce que nous ferons ici.
Nous ne reprendrons pas le script dans son intégralité mais seulement la partie graphique avec insertion de l’équation de la droite de régression sous le graphe. Nous profiterons de cet exemple pour montrer comment sauvegarder un graphique en PDF.
plt.figure(figsize=(8, 6))
plt.scatter(x, y, label="Données", color="blue")
plt.plot(x, y_hat, color="red", label="Droite de régression")
plt.xlabel("Transats")
plt.ylabel("Recette")
plt.title("Régression linéaire : Recette ~ Transats")
equation = f"Recette = {beta_0:.2f} + {beta_1:.2f} × Transats"
plt.text(
0.5, -0.15,
equation,
transform=plt.gca().transAxes,
ha="center",
fontsize=11
)
plt.legend()
plt.tight_layout()
plt.savefig("regression_transats.pdf", format="pdf")
plt.show()
Vous noterez les intitulés des étiquettes d’abscisses et d’ordonnées (xlabel et ylabel) et la position relative du texte libre, en l'occurrence l’équation de droite.
Ainsi, transform = plt.gca().transAxes est l’instruction qui placera le texte dans le repère normalisé de l’axe et non dans celui des données. Le coin inférieur gauche a pour coordonnées (0,0) et le supérieur droit (1,1). Ici, nous avons choisi 0.5 et -0.15. Combiné avec ha="center", 0.5 centre le texte tandis que -0.15 le place à \(15\%\) de la hauteur du graphe en dessous. plt.tight_layout() est l’instruction qui permet d’ajuster automatiquement les marges.
Et pourquoi savefig() avant show() ? Parce que plt.show() affiche et ferme la figure. Il faut donc sauvegarder avant.
Résultat :

- Diagrammes en barres : bar(catégories, valeurs) (ou barh pour des barres horizontales)
- Histogrammes : hist(data, bins=…)
- Diagrammes circulaires : pie(valeurs, labels et éventuellement l’instruction autopct pour afficher les valeurs en pourcentage)
- Boîtes à moustaches : boxplot
- Diagrammes en aires : fill_between
- Cartes thermiques : imshow(matrix), colorbar
Fonctions mathématiques
Associée à la bibliothèque NumPy, Matplotlib permet de tracer des courbes représentatives de fonctions (éventuellement plusieurs sur le même repère). Mais attention : il faut indiquer un nombre de points qui seront reliés entre eux pour obtenir une courbe.
Vous trouverez un exemple de script en page de positionnement de courbes.
