Graphiques linéaires de base avec Matplotlib

MatplotlibBeginner
Pratiquer maintenant

Introduction

Matplotlib est une bibliothèque complète pour créer des visualisations statiques, animées et interactives en Python. C'est l'une des bibliothèques de visualisation de données les plus populaires et elle est essentielle pour tout scientifique ou analyste de données travaillant avec Python.

Un graphique linéaire (line plot) est l'un des types de graphiques les plus basiques et les plus utilisés. Il affiche les informations sous forme d'une série de points de données appelés "marqueurs" (markers) connectés par des segments de ligne droits. Il est souvent utilisé pour visualiser une tendance dans les données sur des intervalles de temps – une série chronologique (time series) – ainsi la ligne est souvent tracée chronologiquement.

Dans ce laboratoire, vous apprendrez à créer un graphique linéaire simple à partir de zéro. Nous couvrirons l'ensemble du processus : préparation des données, leur traçage, ajout d'étiquettes descriptives aux axes, et enfin, sauvegarde du graphique sous forme de fichier image que vous pourrez visualiser directement dans l'environnement LabEx.

Ceci est un Guided Lab, qui fournit des instructions étape par étape pour vous aider à apprendre et à pratiquer. Suivez attentivement les instructions pour compléter chaque étape et acquérir une expérience pratique. Les données historiques montrent que c'est un laboratoire de niveau débutant avec un taux de réussite de 84%. Il a reçu un taux d'avis positifs de 100% de la part des apprenants.

Préparer les listes de données x et y

Dans cette étape, nous allons préparer les données pour notre graphique. Avant de pouvoir visualiser quoi que ce soit, vous avez besoin de données. Pour un graphique linéaire 2D simple, vous avez besoin de deux ensembles de données : un pour l'axe des x (l'axe horizontal) et un pour l'axe des y (l'axe vertical).

Nous utiliserons des listes Python pour stocker nos données. Créons un ensemble de données simple représentant la croissance de la population sur quelques années.

Tout d'abord, ouvrez le fichier main.py situé dans le répertoire ~/project depuis l'explorateur de fichiers sur la gauche. Le fichier contient déjà l'instruction d'importation nécessaire.

Ajoutez maintenant le code suivant à main.py pour créer deux listes, x et y.

import matplotlib.pyplot as plt

## Data for plotting
x = [2018, 2019, 2020, 2021, 2022]
y = [10, 12, 15, 18, 22]

Ici, x représente les années, et y représente la population en millions pour chaque année correspondante. Ces deux listes serviront de coordonnées pour notre graphique linéaire.

Tracer la ligne avec plt.plot(x, y)

Dans cette étape, nous allons utiliser les données que nous avons préparées pour créer le graphique réel. Le module pyplot de Matplotlib, que nous avons importé sous l'alias plt, fournit une fonction appelée plot() qui est parfaite pour cette tâche.

La fonction plt.plot() prend deux arguments principaux : les données pour l'axe des x et les données pour l'axe des y. Elle tracera ensuite une ligne reliant les points définis par ces coordonnées.

Ajoutez la ligne suivante à votre script main.py, juste après les listes de données que vous avez créées à l'étape précédente.

import matplotlib.pyplot as plt

## Data for plotting
x = [2018, 2019, 2020, 2021, 2022]
y = [10, 12, 15, 18, 22]

## Create the plot
plt.plot(x, y)

Cette seule ligne de code indique à Matplotlib de créer un graphique linéaire en utilisant les listes x et y comme coordonnées. Cependant, si vous exécutez le script maintenant, vous ne verrez encore rien. Nous devons encore ajouter des étiquettes et enregistrer explicitement le graphique dans un fichier.

Ajouter une étiquette à l'axe des x avec plt.xlabel()

Dans cette étape, nous allons ajouter une étiquette à l'axe des x. Un graphique sans étiquettes est souvent dénué de sens car le spectateur ne sait pas ce que représentent les axes. C'est une partie cruciale de la création de visualisations claires et informatives.

Matplotlib fournit la fonction plt.xlabel() pour ajouter une étiquette à l'axe des x. Il suffit de passer l'étiquette souhaitée sous forme de chaîne de caractères à cette fonction.

Ajoutons une étiquette pour l'année ('Year') à notre graphique. Ajoutez la ligne suivante à votre script main.py après l'appel à plt.plot().

import matplotlib.pyplot as plt

## Data for plotting
x = [2018, 2019, 2020, 2021, 2022]
y = [10, 12, 15, 18, 22]

## Create the plot
plt.plot(x, y)

## Add x-axis label
plt.xlabel("Year")

Maintenant, l'axe horizontal de notre graphique sera clairement marqué comme 'Year'.

Ajouter une étiquette à l'axe des y avec plt.ylabel()

Dans cette étape, nous allons ajouter une étiquette à l'axe des y, complétant ainsi l'étiquetage de base de notre graphique. Tout comme l'axe des x, l'axe des y a besoin d'une étiquette descriptive pour que les spectateurs puissent comprendre les données.

La fonction pour cela est plt.ylabel(), qui fonctionne exactement comme plt.xlabel(). Vous passez le texte de l'étiquette sous forme de chaîne de caractères.

Ajoutons une étiquette pour la 'Population' à notre graphique. Ajoutez la ligne suivante à votre script main.py, juste après l'appel à plt.xlabel().

import matplotlib.pyplot as plt

## Data for plotting
x = [2018, 2019, 2020, 2021, 2022]
y = [10, 12, 15, 18, 22]

## Create the plot
plt.plot(x, y)

## Add x-axis label
plt.xlabel("Year")

## Add y-axis label
plt.ylabel("Population (in millions)")

Avec les deux axes étiquetés, notre graphique est maintenant beaucoup plus compréhensible.

Afficher le graphique avec plt.show()

Dans cette dernière étape, nous allons générer et visualiser notre graphique. Dans un environnement de bureau typique, vous pourriez utiliser plt.show() pour afficher le graphique dans une nouvelle fenêtre. Cependant, dans un environnement basé sur le web comme LabEx, nous ne pouvons pas ouvrir de fenêtres d'interface graphique.

Au lieu de cela, nous allons enregistrer le graphique dans un fichier image en utilisant la fonction plt.savefig(). Cette fonction enregistre la figure actuelle dans un fichier de votre répertoire de projet.

Ajoutez la ligne suivante à la fin de votre script main.py. Cela enregistrera le graphique sous forme d'image PNG nommée line_plot.png.

import matplotlib.pyplot as plt

## Data for plotting
x = [2018, 2019, 2020, 2021, 2022]
y = [10, 12, 15, 18, 22]

## Create the plot
plt.plot(x, y)

## Add x-axis label
plt.xlabel("Year")

## Add y-axis label
plt.ylabel("Population (in millions)")

## Save the plot to a file
plt.savefig("line_plot.png")

Maintenant, ouvrez un terminal dans l'IDE Web (vous pouvez utiliser l'icône + dans le panneau du terminal ou le menu Terminal > New Terminal). Exécutez votre script avec la commande suivante :

python3 main.py

Une fois la commande terminée, vous verrez un nouveau fichier nommé line_plot.png apparaître dans l'explorateur de fichiers sur la gauche. Double-cliquez sur line_plot.png pour l'ouvrir et voir votre graphique linéaire terminé !

Line plot

Résumé

Félicitations ! Vous avez créé et enregistré avec succès votre premier graphique linéaire à l'aide de Matplotlib.

Dans ce laboratoire, vous avez appris le flux de travail fondamental pour créer un graphique de base :

  1. Préparer les données : Vous avez créé des listes Python pour contenir les données de vos axes x et y.
  2. Tracer les données : Vous avez utilisé plt.plot() pour générer le graphique linéaire à partir de vos données.
  3. Ajouter des étiquettes : Vous avez rendu le graphique informatif en ajoutant des étiquettes avec plt.xlabel() et plt.ylabel().
  4. Enregistrer le graphique : Vous avez appris à utiliser plt.savefig() pour enregistrer votre visualisation dans un fichier, ce qui est essentiel dans les environnements sans interface graphique.

Ce n'est que le début de ce que vous pouvez faire avec Matplotlib. Vous pouvez maintenant développer ces compétences pour créer des visualisations plus complexes et personnalisées. Continuez à explorer !