Visualisation de Données avec Python

Classe B3 ASO 2025-2026

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().

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()