Nuages de points Matplotlib

MatplotlibBeginner
Pratiquer maintenant

Introduction

Bienvenue dans le laboratoire sur les nuages de points (scatter plots) avec Matplotlib ! Les nuages de points sont un outil fondamental en visualisation de données, utilisés pour afficher les valeurs de deux variables typiques pour un ensemble de données. Ils sont excellents pour observer les relations ou les corrélations entre les variables.

Dans ce laboratoire, vous utiliserez la bibliothèque Matplotlib en Python pour créer des nuages de points. Vous apprendrez à :

  • Générer des tableaux de données à l'aide de NumPy.
  • Créer un nuage de points de base avec plt.scatter().
  • Personnaliser l'apparence du graphique, y compris la taille et la couleur des marqueurs.
  • Ajouter une grille pour améliorer la lisibilité.

Tout votre travail sera effectué dans l'environnement WebIDE. Vous écrirez du code Python dans un fichier et l'exécuterez depuis le terminal. Comme cet environnement n'est pas interactif, vous enregistrerez vos graphiques dans un fichier image à l'aide de plt.savefig() au lieu de les afficher avec plt.show().

Commençons !

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 90%. Il a reçu un taux d'avis positifs de 100% de la part des apprenants.

Générer des tableaux de données x et y

Dans cette étape, vous allez créer les données que nous utiliserons pour notre nuage de points. Un nuage de points nécessite au moins deux tableaux de données de même longueur : un pour les coordonnées de l'axe des x et un pour les coordonnées de l'axe des y. Nous utiliserons la bibliothèque NumPy, qui est une norme pour les opérations numériques en Python.

Tout d'abord, ouvrez le fichier main.py depuis l'explorateur de fichiers dans le panneau de gauche du WebIDE. C'est ici que vous écrirez tout votre code pour ce laboratoire.

Maintenant, ajoutez le code suivant à main.py pour importer NumPy et créer deux tableaux de données simples.

import numpy as np

## Data for plotting
x = np.array([5, 7, 8, 7, 2, 17, 2, 9, 4, 11, 12, 9, 6])
y = np.array([99, 86, 87, 88, 111, 86, 103, 87, 94, 78, 77, 85, 86])

Analysons le code :

  • import numpy as np : Cette ligne importe la bibliothèque NumPy et lui donne l'alias conventionnel np.
  • x = np.array([...]) : Ceci crée un tableau NumPy nommé x contenant nos points de données pour l'axe horizontal.
  • y = np.array([...]) : Ceci crée un tableau NumPy nommé y contenant nos points de données pour l'axe vertical.

Votre fichier main.py devrait maintenant contenir ce code. Dans l'étape suivante, nous utiliserons ces données pour créer notre premier graphique.

Tracer le nuage de points avec plt.scatter(x, y)

Dans cette étape, vous allez créer un nuage de points de base en utilisant les données que vous avez générées. Nous utiliserons le module matplotlib.pyplot, qui fournit une interface simple pour créer des graphiques.

Tout d'abord, vous devez importer matplotlib.pyplot. Ensuite, vous pouvez utiliser la fonction plt.scatter() pour créer le graphique. Enfin, vous devez enregistrer le graphique dans un fichier. Comme mentionné dans l'introduction, nous ne pouvons pas utiliser plt.show() pour afficher le graphique directement dans cet environnement. Au lieu de cela, nous utiliserons plt.savefig() pour l'enregistrer sous forme d'image.

Mettez à jour votre fichier main.py avec le code suivant. Ajoutez les nouvelles lignes sous le code existant.

import numpy as np
import matplotlib.pyplot as plt

## Data for plotting
x = np.array([5, 7, 8, 7, 2, 17, 2, 9, 4, 11, 12, 9, 6])
y = np.array([99, 86, 87, 88, 111, 86, 103, 87, 94, 78, 77, 85, 86])

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

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

print("Scatter plot saved to scatter_plot.png")

Explication du code :

  • import matplotlib.pyplot as plt : Importe le module de traçage et lui donne l'alias standard plt.
  • plt.scatter(x, y) : C'est la fonction principale. Elle prend les tableaux x et y et trace chaque paire de valeurs (x, y) comme un point.
  • plt.savefig('/home/labex/project/scatter_plot.png') : Cette fonction enregistre la figure actuelle dans un fichier nommé scatter_plot.png dans votre répertoire ~/project.

Maintenant, exécutez votre script depuis le terminal en bas du WebIDE :

python3 main.py

Vous devriez voir la sortie suivante dans le terminal :

Scatter plot saved to scatter_plot.png

Un nouveau fichier nommé scatter_plot.png apparaîtra dans l'explorateur de fichiers à gauche. Double-cliquez dessus pour voir votre premier nuage de points !

Scatter plot

Personnaliser la taille des marqueurs avec le paramètre s

Dans cette étape, vous apprendrez à personnaliser la taille des marqueurs (les points) dans votre nuage de points. La fonction plt.scatter() possède un paramètre optionnel s qui contrôle la taille du marqueur.

Vous pouvez fournir un seul nombre pour que tous les marqueurs aient la même taille, ou vous pouvez fournir un tableau de nombres (de même longueur que vos données x et y) pour spécifier une taille unique pour chaque marqueur. Essayons cette dernière option pour rendre le graphique plus intéressant.

Modifiez votre fichier main.py. Nous allons créer un tableau sizes et le passer au paramètre s dans la fonction plt.scatter().

import numpy as np
import matplotlib.pyplot as plt

## Data for plotting
x = np.array([5, 7, 8, 7, 2, 17, 2, 9, 4, 11, 12, 9, 6])
y = np.array([99, 86, 87, 88, 111, 86, 103, 87, 94, 78, 77, 85, 86])
sizes = np.array([20, 50, 100, 200, 500, 1000, 60, 90, 10, 300, 600, 800, 75])

## Create scatter plot with custom sizes
plt.scatter(x, y, s=sizes)

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

print("Scatter plot with custom sizes saved to scatter_plot_sizes.png")

Dans le code mis à jour, nous avons ajouté un tableau sizes et modifié l'appel plt.scatter() en plt.scatter(x, y, s=sizes). Désormais, chaque point sera tracé avec sa taille correspondante du tableau sizes.

Exécutez à nouveau le script pour voir les changements :

python3 main.py

Une fois le script terminé, ouvrez à nouveau scatter_plot_sizes.png. Vous remarquerez que les marqueurs ont maintenant des tailles différentes, ce qui rend le graphique plus informatif visuellement.

Scatter plot with custom sizes

Changer la couleur des marqueurs avec le paramètre c

Dans cette étape, nous allons personnaliser la couleur des marqueurs. Similaire à la taille, vous pouvez contrôler la couleur à l'aide du paramètre c dans la fonction plt.scatter().

Vous pouvez passer un seul nom de couleur (par exemple, 'red') pour que tous les marqueurs aient la même couleur, ou vous pouvez passer un tableau de couleurs pour donner à chaque marqueur une couleur spécifique. Attribuons une couleur unique à chaque point.

Mettez à jour votre fichier main.py pour inclure un tableau colors et le passer au paramètre c.

import numpy as np
import matplotlib.pyplot as plt

## Data for plotting
x = np.array([5, 7, 8, 7, 2, 17, 2, 9, 4, 11, 12, 9, 6])
y = np.array([99, 86, 87, 88, 111, 86, 103, 87, 94, 78, 77, 85, 86])
sizes = np.array([20, 50, 100, 200, 500, 1000, 60, 90, 10, 300, 600, 800, 75])
colors = np.array(["red", "green", "blue", "yellow", "pink", "black", "orange", "purple", "beige", "brown", "gray", "cyan", "magenta"])

## Create scatter plot with custom sizes and colors
plt.scatter(x, y, s=sizes, c=colors)

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

print("Scatter plot with custom colors saved to scatter_plot_colors.png")

Nous avons maintenant ajouté un tableau colors contenant des noms de couleurs et mis à jour l'appel de fonction en plt.scatter(x, y, s=sizes, c=colors).

Exécutez le script depuis le terminal :

python3 main.py

Ouvrez scatter_plot_colors.png une fois de plus. Vous verrez un nuage de points coloré où chaque point a une taille et une couleur différentes, comme défini dans nos tableaux.

Scatter plot with custom colors

Ajouter une grille avec plt.grid()

Dans cette dernière étape, vous ajouterez une grille à votre nuage de points. Une grille peut faciliter la lecture des valeurs des points de données sur les axes.

L'ajout d'une grille dans Matplotlib est très simple. Il vous suffit d'appeler la fonction plt.grid() avant de sauvegarder le graphique. Par défaut, plt.grid(True) affichera la grille.

Ajoutons cela à notre script. Modifiez main.py pour inclure l'appel plt.grid().

import numpy as np
import matplotlib.pyplot as plt

## Data for plotting
x = np.array([5, 7, 8, 7, 2, 17, 2, 9, 4, 11, 12, 9, 6])
y = np.array([99, 86, 87, 88, 111, 86, 103, 87, 94, 78, 77, 85, 86])
sizes = np.array([20, 50, 100, 200, 500, 1000, 60, 90, 10, 300, 600, 800, 75])
colors = np.array(["red", "green", "blue", "yellow", "pink", "black", "orange", "purple", "beige", "brown", "gray", "cyan", "magenta"])

## Create scatter plot
plt.scatter(x, y, s=sizes, c=colors)

## Add a grid
plt.grid(True)

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

print("Scatter plot with grid saved to scatter_plot_grid.png")

Nous avons ajouté plt.grid(True) juste avant plt.savefig(). Cela indique à Matplotlib de dessiner une grille sur le graphique.

Exécutez la dernière version de votre script :

python3 main.py

Maintenant, vérifiez l'image scatter_plot_grid.png. Votre graphique devrait maintenant avoir une grille en arrière-plan, complétant ainsi notre nuage de points personnalisé.

Scatter plot with grid

Résumé

Félicitations pour avoir terminé le laboratoire ! Vous avez acquis avec succès les bases de la création et de la personnalisation de nuages de points avec Matplotlib.

Dans ce laboratoire, vous avez pratiqué :

  • La génération de données pour le traçage à l'aide de NumPy.
  • La création d'un nuage de points de base avec plt.scatter().
  • La personnalisation des tailles de marqueurs à l'aide du paramètre s.
  • La modification des couleurs des marqueurs à l'aide du paramètre c.
  • L'ajout d'une grille au graphique avec plt.grid().
  • La sauvegarde de vos graphiques dans un fichier avec plt.savefig().

Ce sont des compétences essentielles pour la visualisation de données en Python. Vous pouvez maintenant créer des nuages de points informatifs et visuellement attrayants pour explorer les relations dans vos données. Pour poursuivre votre apprentissage, vous pourriez explorer l'ajout de titres et d'étiquettes, l'utilisation de différents styles de marqueurs, ou l'application de cartes de couleurs pour des visualisations plus avancées.