Comment faire la légende du nuage de points dans Matplotlib

Suraj Joshi 30 janvier 2023
  1. Ajouter une légende au nuage de points 2D dans Matplotlib
  2. Ajouter une légende au nuage de points 3D dans Matplotlib
Comment faire la légende du nuage de points dans Matplotlib

La légende est simplement la description des différents éléments d’une figure. Nous pouvons générer une légende de nuage de points en utilisant la fonction matplotlib.pyplot.legend.

Ajouter une légende au nuage de points 2D dans Matplotlib

import numpy as np
import matplotlib.pyplot as plt

x = [1, 2, 3, 4, 5]

y1 = [i ** 2 for i in x]
y2 = [2 * i + 1 for i in x]

plt.scatter(x, y1, marker="x", color="r", label="x**2")
plt.scatter(x, y2, marker="o", color="b", label="2*x+1")
plt.legend()
plt.show()

Production:

Ajouter une légende à un nuage de points en 2D

Nous avons deux diagrammes de dispersion séparés dans la figure : l’un représenté par x et l’autre par la marque o. Nous attribuons l’“étiquette” à chaque nuage de points utilisé comme balise lors de la génération de la légende. Ensuite, nous créons la légende dans la figure en utilisant la fonction legend() et enfin nous affichons la figure entière en utilisant la méthode show().

Nous pouvons également passer directement un n-uplet d’étiquettes en argument à la méthode legend() et changer la position de la légende en utilisant le paramètre loc de la méthode legend().

import numpy as np
import matplotlib.pyplot as plt

x = [1, 2, 3, 4, 5]

y1 = [i ** 2 for i in x]
y2 = [2 * i + 1 for i in x]

plt.scatter(x, y1, marker="x", color="r")
plt.scatter(x, y2, marker="o", color="b")
plt.legend(("x**2", "2*x+1"), loc="center left")
plt.show()

Production:

Ajout de la légende à un nuage de points 2D spécifiant la position dans Matplotlib

Ce processus crée une figure avec deux nuages de points et une légende placée au centre gauche de la boîte de frontière des axes.

Ajouter une légende au nuage de points 3D dans Matplotlib

import matplotlib.pyplot as plt

x = [1, 2, 3, 4, 5]
y = [2, 1, 4, 5, 6]

z1 = [i + j for (i, j) in zip(x, y)]
z2 = [3 * i - j for (i, j) in zip(x, y)]

axes = plt.subplot(111, projection="3d")
axes.plot(x, y, z1, "x", label="x+y")
axes.plot(x, y, z2, "o", label="3*x-y")

plt.legend(loc="upper left")
plt.show()

Production:

Ajouter une légende à un nuage de points en 3D

Pour créer une légende pour le nuage de points 3D, nous utilisons la méthode plot() au lieu de la méthode scatter() ; c’est parce que la méthode legend() ne supporte pas le Patch3DCollection renvoyé par la méthode scatter() de l’instance Axes3D.

Auteur: Suraj Joshi
Suraj Joshi avatar Suraj Joshi avatar

Suraj Joshi is a backend software engineer at Matrice.ai.

LinkedIn

Article connexe - Matplotlib Scatter Plot

Article connexe - Matplotlib Legend