Introduction à Matplotlib et pyplot
Objectif pédagogique : Découvrir les bases de la visualisation de données en Python avec la bibliothèque Matplotlib.
À la fin de ce chapitre, tu seras capable de…
- Importer et configurer matplotlib.pyplot dans un environnement Python
- Créer des graphiques simples en traçant des courbes avec la méthode plot
- Personnaliser les graphiques avec titres, labels et délimitations d’axes
- Maîtriser les bonnes pratiques d’affichage dans Jupyter Notebook
💡 Prérequis : Connaissances de base en Python (listes, syntaxe de base) et familiarité avec l’environnement Jupyter Notebook
Mise en contexte
Vous allez apprendre à transformer vos données en graphiques percutants grâce à Matplotlib, la bibliothèque de référence pour la visualisation en Python. Vous découvrirez comment tracer votre première courbe en reliant simplement des points comme [2, 4, 6, 8] et [2, 5, 6, 13]. Vous maîtriserez également les techniques pour personnaliser vos graphiques avec des titres attractifs et des labels d’axes professionnels.
INTRODUCTION :
Ce cours dédié aux bases de la Data Visualization avec Python grâce à la bibliothèque Matplotlib. Matplotlib est un outil pour tracer des graphiques et visualiser des données.
Elle est destinée à produire des graphiques de toutes sortes. Matplotlib contient la sous-bibliothèque pyplot dédié à la création de graphiques de manière simple et rapide.
Par ailleurs, Matplotlib est une bibliothèque très riche, toutes ses fonctionnalités ne peuvent être traitées.
Cette formation fait le choix d’explorer certaines fonctions plus que d’autres, l’objectif général étant de rendre un Data Analyst ou un Data Scientist autonome sur le module en fin de formation.
Pour afficher un graphique, il faut nécessairement commencer par importer le module matplotlib.pyplot. Par convention, il est toujours importé sous le nom raccourci de ‘plt‘. Une fois un graphique construit, c’est l’instruction plt.show() qui permettra de le visualiser.
Cependant, sur un Notebook Jupyter, rajouter en début de page %matplotlib inline permet d’afficher automatiquement les figures lors de l’exécution d’une cellule contenant un appel à une commande pyplot.
%matplotlib inline
import matplotlib.pyplot as plt
1 – Tracer des courbes
Une courbe tracé sur un graphique est un ensemble de points de coordonnées (x, y) entre lesquels une ligne est tracée : plus le nombre de points est élevé, plus le graphique semble lisse.
La méthode plot permet de tracer des courbes qui relient des points dont les abscisses et ordonnées sont fournies dans des listes ou tableaux.
Pour tracer un graphe avec les valeurs ‘x’ en abscisses et les valeurs ‘y’ en ordonnées on écrit: plt.plot(x,y)
- Tracer une courbe prenant en abscisses les valeurs [2, 4, 6, 8] et en ordonnées les valeurs [2, 5, 6, 13].
plt.plot([2, 4, 6, 8], [2, 5, 6, 13])

En rajoutant un ‘;’ à la dernière ligne de chaque cellule permet d’éviter d’afficher les sorties textes au dessus des graphiques comme :
[<matplotlib.lines.Line2D at 0x78250bba6ba0>].
Si l’on n’insère qu’une seule liste ou tableau dans la commande plot, matplotlib présume que c’est une séquence de valeurs à afficher en ordonnées et génère les valeurs des abscisses automatiquement. Les valeurs des abscisses seront les positions des valeurs de y à partir de 0.
- Tracer une courbe à partir de la liste [1, 5, 4, 6, 2].
plt.plot([1,5,4,6, 2]);

Ici seules les valeurs des ordonnées ont été renseignées, les abscisses ont automatiquement pris les valeurs [0, 1, 2, 3, 4].
Pour ajouter un titre aux graphes on utilise la méthode title. Pour ajouter des labels aux axes on utilise les méthodes xlabel et ylabel.
- Tracer une courbe passant par les points suivants: (70, 1) , (160, 2) , (220, 4), (300, 5), (420, 6).
- Donner à la figure le titre ‘Mon exemple de courbe’.
- Donner respectivement à l’axe des abscisses et l’axe des ordonnées les labels ‘abscisses’ et ‘ordonnees’.
plt.title(‘Mon exemple de courbe’)
plt.plot([70, 160, 220, 300, 420], [1, 2, 4, 5, 6])
plt.xlabel(‘Abscisses’)
plt.ylabel(‘Ordonnees’);

Exercice 1
- Tracer une courbe passant par les points suivants : (70, 1) , (160, 2) , (220, 4), (300, 5), (420, 6).
- Encadrer le graphique entre les abscisses 50 et 450 et les ordonnées de 1 à 6.
plt.plot([70, 160, 220, 300, 420], [1, 2, 4, 5, 6])
plt.axis([50, 450, 1, 6]);
# ou :
#plt.xlim([50,420]); plt.ylim([1,6])
Exercice 2
- Créer les listes x et y suivantes : x = [0, 0, 1, 1, 0, 0.5, 1, 1, 0.5, 0], y = [1, 0, 0, 1, 1, 2, 1, 0, -1, 0].
- Relier ces points grâce à la fonction plot, et délimiter les deux axes entre -1 et 2.
x = [0, 0, 1, 1, 0, 0.5, 1, 1, 0.5, 0]
y = [1, 0, 0, 1, 1, 2, 1, 0, -1, 0]
plt.plot(x, y)
plt.axis([-1, 2, -1, 2]);

La fonction plot fonctionne aussi avec les Series de Pandas. En travaillant avec un DataFrame, nous pouvons facilement en extraire les colonnes pour créer des graphiques. Par exemple, plt.plot(df.col1, df.col2).
💡 À retenir : Exemple :
- Télécharger le fichier csv ‘reservations.csv’ ici et importer le sous forme de DataFrame nommé df_reservations et afficher les 5 premières lignes du dataframe et une description du dataframe.
Le fichier contient un ensemble des données sur 5000 réservations de véhicules d’une entreprise dénommée RentCarPro. Le fichier est structuré en 46 colonnes couvrant l’ensemble du cycle de vie d’une location de véhicule.
df_reservations = pd.read_csv(‘reservations.csv’)
print(df_reservations.head())

print(f »Nombre de lignes: {len(df_reservations)} »)
print(f »Nombre de colonnes: {len(df_reservations.columns)} »)

« `


- Convertir la colonne date_reservation en format datetime
df_reservations[‘date_reservation’]=pd.to_datetime(
df_reservations[‘date_reservation’]
)
- Extraire le mois sous forme d’entiers (1, 2, …, 12)
df_reservations[‘month’] = df_reservations[‘date_reservation’].dt.month
print(« Aperçu des colonnes date_reservation et month: »)
print(df_reservations[[‘date_reservation’, ‘month’]].head(10))

- Calculer le montant total de location pour chaque mois

- Créer une courbe du montant total des location par mois en fonction du mois avec matplotlib

- Nous pouvons modifier l’axe des abscisse en remplaçant les entiers par le mois correspondant. Par exemple 1 sera remplacer par Janvier, 2 par Février, ainsi de suite jusqu’au dernier mois, 12, qui sera remplacé par Décembre.
Modifier l’axe des abscisses pour afficher les noms des mois
noms_mois = ['Janvier', 'Février', 'Mars', 'Avril', 'Mai', 'Juin',
'Juillet', 'Août', 'Septembre', 'Octobre', 'Novembre', 'Décembre']
plt.figure(figsize=(12, 6))
plt.plot(noms_mois, montant_par_mois.values)
plt.xlabel('Mois')
plt.ylabel('Montant total des locations');

Conclusion :
💡 À retenir :
- Pour tracer des courbes avec Matploltib, nous utilisons la fonction plot(), qui fonctionne aussi bien avec une liste, un array numpy ou une Pandas Series.
- Il est possible de délimiter les axes des abscisses et des ordonnées grâce à xlim et ylim, et leur donner des titres grâce à xlabel et ylabel.
Les Dataframes Pandas permettent de tracer des courbes plus facilement et plus intuitivement, à l’aide de méthodes intégrées qui utilisent Matplotlib en background.