Module 2
Maîtrise de Matplotlib - L'Art de la Visualisation
Apprenez à contrôler chaque aspect de vos graphiques et à les assembler dans des figures multi-graphiques.
2.1 Votre Premier Graphique : La Méthode Simple (pyplot)
Pour créer un graphique simple, on peut utiliser l'interface pyplot directement. C'est rapide et efficace pour une exploration de base.
Analogie : C'est comme utiliser une application de retouche photo simple sur votre téléphone. Vous choisissez une photo, appliquez un filtre, et c'est tout.
import matplotlib.pyplot as plt
# 1. Nos données
mois = ['Jan', 'Fév', 'Mar', 'Avr', 'Mai', 'Juin']
ventes = [150, 180, 220, 190, 250, 270]
# 2. Créer le graphique
plt.plot(mois, ventes)
# 3. Ajouter des informations contextuelles
plt.title("Ventes Mensuelles")
plt.xlabel("Mois")
plt.ylabel("Nombre de ventes")
# 4. Afficher le graphique
plt.show()
2.2 L'Interface Orientée Objet : Pour un Contrôle Total
C'est l'approche professionnelle. Elle demande une ligne de code de plus au début, mais elle vous donne un contrôle total sur chaque élément.
Analogie : Passer de l'application photo simple à un logiciel comme Photoshop. Vous avez maintenant une toile (Figure) et des pinceaux (Axes) distincts pour travailler sur des projets plus complexes.
La ligne de code clé est fig, ax = plt.subplots().
- fig (la Figure) : C'est la toile blanche, le conteneur global.
- ax (les Axes) : C'est le graphique en lui-même, la zone de dessin.
import matplotlib.pyplot as plt
mois = ['Jan', 'Fév', 'Mar', 'Avr', 'Mai', 'Juin']
ventes = [150, 180, 220, 190, 250, 270]
# 1. Créer la toile (fig) et la zone de dessin (ax)
fig, ax = plt.subplots()
# 2. Utiliser les méthodes de 'ax' pour dessiner et configurer
ax.plot(mois, ventes)
ax.set_title("Ventes Mensuelles")
ax.set_xlabel("Mois")
ax.set_ylabel("Nombre de ventes")
# 3. Afficher le tout
plt.show()
2.3 Personnaliser Chaque Détail : Rendre son Graphique Pro
Avec l'objet ax, vous pouvez personnaliser absolument tout.
import matplotlib.pyplot as plt
mois = ['Jan', 'Fév', 'Mar', 'Avr', 'Mai', 'Juin']
ventes_produit_A = [150, 180, 220, 190, 250, 270]
ventes_produit_B = [80, 95, 110, 100, 130, 140]
fig, ax = plt.subplots(figsize=(10, 6)) # figsize = (largeur, hauteur)
# Traçage avec personnalisation complète
ax.plot(mois, ventes_produit_A, color='blue', linestyle='--', marker='o', label='Produit A')
ax.plot(mois, ventes_produit_B, color='#FF5733', linestyle='-', label='Produit B')
# Personnalisation des axes, du titre et de la grille
ax.set_title("Performance des Ventes - Premier Semestre", fontsize=16, fontweight='bold')
ax.set_xlabel("Mois", fontsize=12)
ax.set_ylabel("Unités Vendues", fontsize=12)
ax.set_ylim(0, 300)
ax.grid(True, linestyle=':', alpha=0.6)
# Ajouter une légende
ax.legend(loc='upper left')
plt.show()
2.4 Créer des Grilles de Graphiques (Subplots)
L'un des plus grands avantages de l'approche orientée objet est la facilité avec laquelle on peut créer une figure contenant plusieurs graphiques.
Analogie : 🖼️ Créer un diptyque. Vous avez une seule grande toile (fig) mais plusieurs zones de dessin (axes) distinctes.
Imaginons que nous voulons comparer les ventes (graphique en ligne) et les bénéfices (diagramme en barres).
import matplotlib.pyplot as plt
mois = ['Jan', 'Fév', 'Mar', 'Avr', 'Mai', 'Juin']
ventes = [150, 180, 220, 190, 250, 270]
benefices = [15, 17, 25, 22, 30, 35] # en milliers d'euros
# Crée une grille de 1 ligne et 2 colonnes
fig, axs = plt.subplots(1, 2, figsize=(15, 6))
fig.suptitle("Analyse Financière - Premier Semestre", fontsize=18)
# --- Personnaliser le premier graphique (Ventes) ---
axs[0].plot(mois, ventes, color='royalblue', marker='o')
axs[0].set_title("Volume des Ventes")
axs[0].set_ylabel("Unités Vendues")
axs[0].grid(True, linestyle=':')
# --- Personnaliser le second graphique (Bénéfices) ---
axs[1].bar(mois, benefices, color='forestgreen')
axs[1].set_title("Bénéfices par Mois")
axs[1].set_ylabel("Bénéfices (k€)")
axs[1].grid(True, linestyle=':')
plt.tight_layout()
plt.show()
Exercices Pratiques
Exercice 1 : Diagramme en Barres Personnalisé
Créez un diagramme en barres représentant le nombre d'étudiants par matière. Personnalisez-le en changeant la couleur des barres, en ajoutant un titre et des labels pour les axes X et Y.
matieres = ['Maths', 'Physique', 'Info', 'Chimie']
etudiants = [35, 28, 42, 21]
Voir la solution
import matplotlib.pyplot as plt
matieres = ['Maths', 'Physique', 'Info', 'Chimie']
etudiants = [35, 28, 42, 21]
fig, ax = plt.subplots(figsize=(8, 5))
ax.bar(matieres, etudiants, color='skyblue')
ax.set_title("Nombre d'Étudiants par Matière", fontweight='bold')
ax.set_xlabel("Matières")
ax.set_ylabel("Nombre d'Étudiants")
ax.set_ylim(0, 50)
plt.show()
Exercice 2 : Nuage de Points avec Deux Variables
Créez un nuage de points pour visualiser la relation entre deux variables, par exemple la taille et le poids. Personnalisez les points (couleur, forme) et ajoutez une légende.
taille = [165, 170, 175, 180, 185]
poids = [60, 68, 72, 80, 85]
Voir la solution
import matplotlib.pyplot as plt
taille = [165, 170, 175, 180, 185]
poids = [60, 68, 72, 80, 85]
fig, ax = plt.subplots(figsize=(8, 5))
ax.scatter(taille, poids, color='red', marker='x', label='Données Individuelles')
ax.set_title("Relation entre Taille et Poids")
ax.set_xlabel("Taille (cm)")
ax.set_ylabel("Poids (kg)")
ax.legend()
ax.grid(True, linestyle=':')
plt.show()