Personnalisation des graphiques linéaires Matplotlib

MatplotlibBeginner
Pratiquer maintenant

Introduction

Matplotlib est une bibliothèque Python puissante pour créer des visualisations statiques, animées et interactives. Bien que la création d'un graphique de base soit simple, sa personnalisation est essentielle pour rendre vos données claires, compréhensibles et visuellement attrayantes.

Dans ce laboratoire, vous commencerez par un simple graphique linéaire et le personnaliserez progressivement. Vous apprendrez à modifier la couleur de la ligne, à ajouter des marqueurs aux points de données, à modifier le style de la ligne, à ajouter un titre à votre graphique et à ajuster les limites des axes.

Étant donné que cet environnement de laboratoire utilise un WebIDE, nous ne pouvons pas afficher les graphiques dans une fenêtre GUI séparée. Au lieu de cela, nous enregistrerons chaque graphique dans un fichier image à l'aide de plt.savefig(). Vous pourrez ensuite visualiser l'image générée directement dans l'IDE.

Commençons !

Tracer une ligne avec une couleur personnalisée en utilisant plt.plot(color='red')

Dans cette étape, vous apprendrez à modifier la couleur d'une ligne dans votre graphique. Par défaut, Matplotlib parcourt un ensemble prédéfini de couleurs. Cependant, vous pouvez facilement spécifier une couleur de votre choix en utilisant le paramètre color dans la fonction plt.plot().

Tout d'abord, créons un graphique de base d'une onde sinusoïdale. Nous utiliserons NumPy pour générer les points de données.

Ouvrez le fichier main.py situé dans le répertoire ~/project dans l'explorateur de fichiers à gauche. Remplacez son contenu par le code suivant. Ce code tracera une onde sinusoïdale et la coloriera en rouge.

import matplotlib.pyplot as plt
import numpy as np

## Generate data for the plot
x = np.arange(0, 10, 0.1)
y = np.sin(x)

## Plot the data with a custom color
plt.plot(x, y, color='red')

## Save the plot to a file
plt.savefig('/home/labex/project/plot_color.png')

print("Plot saved as plot_color.png")

Après avoir mis à jour le fichier main.py, enregistrez-le. Exécutez maintenant le script depuis le terminal en bas de l'IDE :

python3 main.py

Vous devriez voir la sortie suivante dans le terminal :

Plot saved as plot_color.png

Un nouveau fichier nommé plot_color.png apparaîtra dans le répertoire ~/project. Double-cliquez dessus pour ouvrir et visualiser votre premier graphique personnalisé. Vous verrez une onde sinusoïdale rouge.

Plot color

Ajouter des marqueurs en utilisant plt.plot(marker='o')

Dans cette étape, vous ajouterez des marqueurs à vos points de données. Les marqueurs sont utiles pour mettre en évidence l'emplacement exact de chaque point de données sur la ligne, ce qui peut être particulièrement utile lorsque les points de données sont peu nombreux.

Vous pouvez ajouter des marqueurs en utilisant le paramètre marker dans la fonction plt.plot(). Il existe de nombreux styles de marqueurs disponibles, tels que 'o' pour les cercles, 'x' pour les croix et '*' pour les étoiles.

Modifions le fichier main.py pour ajouter des marqueurs circulaires à notre graphique. Nous allons également changer le nom du fichier de sortie en plot_marker.png pour conserver notre progression de l'étape précédente.

Mettez à jour le fichier main.py avec le code suivant :

import matplotlib.pyplot as plt
import numpy as np

## Generate data for the plot
x = np.arange(0, 10, 0.1)
y = np.sin(x)

## Plot the data with a custom color and marker
plt.plot(x, y, color='red', marker='o')

## Save the plot to a new file
plt.savefig('/home/labex/project/plot_marker.png')

print("Plot saved as plot_marker.png")

Enregistrez le fichier et exécutez à nouveau le script dans le terminal :

python3 main.py

Le terminal affichera cette sortie :

Plot saved as plot_marker.png

Trouvez maintenant le nouveau fichier plot_marker.png dans l'explorateur de fichiers et double-cliquez dessus. Vous verrez que la ligne rouge comporte maintenant de petits cercles à chaque point de données.

Plot marker

Définir le style de ligne avec plt.plot(linestyle='--')

Dans cette étape, vous apprendrez à modifier le style de la ligne elle-même. Le style par défaut est une ligne continue, mais vous pouvez la changer en ligne pointillée, en ligne discontinue, ou d'autres styles pour différencier plusieurs lignes sur le même graphique ou simplement pour des raisons esthétiques.

Ceci est fait en utilisant le paramètre linestyle (ou son raccourci ls). Les styles courants incluent '--' pour les lignes discontinues (dashed), ':' pour les lignes pointillées (dotted), et '-.' pour les lignes tiret-point (dash-dot).

Modifions notre graphique pour utiliser une ligne discontinue. Modifiez le fichier main.py comme indiqué ci-dessous. Nous allons également changer le nom du fichier de sortie en plot_linestyle.png.

import matplotlib.pyplot as plt
import numpy as np

## Generate data for the plot
x = np.arange(0, 10, 0.1)
y = np.sin(x)

## Plot the data with custom color, marker, and line style
plt.plot(x, y, color='red', marker='o', linestyle='--')

## Save the plot to a new file
plt.savefig('/home/labex/project/plot_linestyle.png')

print("Plot saved as plot_linestyle.png")

Enregistrez les modifications et exécutez le script depuis votre terminal :

python3 main.py

Vous verrez le message de confirmation :

Plot saved as plot_linestyle.png

Ouvrez le fichier nouvellement créé plot_linestyle.png. Vous remarquerez que la ligne reliant les marqueurs est maintenant discontinue au lieu d'être continue.

Plot linestyle

Ajouter un titre avec plt.title()

Un graphique sans titre peut être ambigu. Il est crucial de donner à vos graphiques un titre descriptif afin que les spectateurs puissent immédiatement comprendre ce que le graphique représente. Dans Matplotlib, vous pouvez ajouter un titre en utilisant la fonction plt.title().

Dans cette étape, vous ajouterez le titre "Onde Sinusoïdale" à votre graphique. Cette fonction est appelée avant de sauvegarder la figure.

Modifiez votre fichier main.py pour inclure l'appel à plt.title(). Le nouveau fichier de sortie sera plot_title.png.

import matplotlib.pyplot as plt
import numpy as np

## Generate data for the plot
x = np.arange(0, 10, 0.1)
y = np.sin(x)

## Plot the data with customizations
plt.plot(x, y, color='red', marker='o', linestyle='--')

## Add a title to the plot
plt.title('Sine Wave')

## Save the plot to a new file
plt.savefig('/home/labex/project/plot_title.png')

print("Plot saved as plot_title.png")

Enregistrez le fichier et exécutez le script :

python3 main.py

La sortie sera :

Plot saved as plot_title.png

Ouvrez plot_title.png pour voir votre graphique. Il devrait maintenant avoir le titre "Sine Wave" affiché en haut.

Plot title

Ajuster les limites des axes avec plt.xlim() et plt.ylim()

Parfois, vous voudrez peut-être vous concentrer sur une région spécifique de votre graphique ou ajouter un peu d'espace autour des données. Vous pouvez contrôler la plage des axes x et y en utilisant respectivement les fonctions plt.xlim() et plt.ylim().

Dans cette dernière étape, nous ajusterons les axes pour "zoomer" sur une partie de l'onde sinusoïdale. Nous réglerons l'axe des x pour qu'il aille de 0 à 5 et l'axe des y de -1,5 à 1,5. Cela donnera à notre graphique un peu de marge verticale.

Mettez à jour votre fichier main.py avec la version finale du code. La sortie sera enregistrée dans plot_final.png.

import matplotlib.pyplot as plt
import numpy as np

## Generate data for the plot
x = np.arange(0, 10, 0.1)
y = np.sin(x)

## Plot the data with customizations
plt.plot(x, y, color='red', marker='o', linestyle='--')

## Add a title
plt.title('Sine Wave')

## Adjust the axis limits
plt.xlim(0, 5)
plt.ylim(-1.5, 1.5)

## Save the final plot to a file
plt.savefig('/home/labex/project/plot_final.png')

print("Plot saved as plot_final.png")

Enregistrez le fichier et exécutez le script pour la dernière fois :

python3 main.py

Vous obtiendrez la confirmation finale :

Plot saved as plot_final.png

Maintenant, ouvrez plot_final.png. Comparez-le avec les graphiques précédents. Vous verrez que l'axe des x se termine maintenant à 5, et qu'il y a plus d'espace au-dessus et en dessous de l'onde sinusoïdale en raison des nouvelles limites de l'axe y.

Plot final

Résumé

Félicitations pour avoir terminé ce laboratoire ! Vous avez appris avec succès à personnaliser un graphique linéaire Matplotlib de base pour le rendre plus informatif et visuellement attrayant.

Dans ce laboratoire, vous avez pratiqué :

  • Le changement de la couleur de la ligne en utilisant le paramètre color dans plt.plot().
  • L'ajout de marqueurs de points de données avec le paramètre marker.
  • La définition du style de ligne en utilisant le paramètre linestyle.
  • L'ajout d'un titre descriptif avec la fonction plt.title().
  • L'ajustement des plages d'axes avec plt.xlim() et plt.ylim().

Ce sont des compétences fondamentales pour créer des graphiques de qualité professionnelle pour l'analyse et la présentation des données. N'hésitez pas à expérimenter davantage en essayant différentes couleurs, marqueurs et styles de ligne, ou en ajoutant des étiquettes aux axes x et y en utilisant plt.xlabel() et plt.ylabel().