Crea la leggenda del diagramma a dispersione in Matplotlib

Suraj Joshi 18 luglio 2021
  1. Aggiungi una legenda al grafico a dispersione 2D in Matplotlib
  2. Aggiungi una legenda al grafico a dispersione 3D in Matplotlib
Crea la leggenda del diagramma a dispersione in Matplotlib

La leggenda è semplicemente la descrizione di vari elementi in una figura. Possiamo generare una legenda del grafico a dispersione utilizzando la funzione matplotlib.pyplot.legend.

Aggiungi una legenda al grafico a dispersione 2D in 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()

Produzione:

Aggiungi una legenda a un grafico a dispersione 2D

Abbiamo due grafici a dispersione separati nella figura: uno rappresentato da x e un altro dal segno o. Assegniamo la label a ciascun grafico a dispersione utilizzato come tag durante la generazione della legenda. Quindi, creiamo la legenda nella figura usando la funzione legend() e infine visualizziamo l’intera figura usando il metodo show().

Possiamo anche passare direttamente una tupla di etichette come argomento al metodo legend() e cambiare la posizione della legenda usando il parametro loc del metodo 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()

Produzione:

Aggiungi la legenda a un grafico a dispersione 2D specificando la posizione in Matplotlib

Questo processo crea una figura con due grafici a dispersione e una legenda posta al centro sinistra del riquadro di confine degli assi.

Aggiungi una legenda al grafico a dispersione 3D in 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()

Produzione:

Aggiungi una legenda a un grafico a dispersione 3D

Per creare una legenda per il grafico a dispersione 3D, usiamo il metodo plot() invece del metodo scatter(); è perché il metodo legend() non supporta Patch3DCollection restituito dal metodo scatter() dell’istanza Axes3D.

Autore: Suraj Joshi
Suraj Joshi avatar Suraj Joshi avatar

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

LinkedIn

Articolo correlato - Matplotlib Scatter Plot

Articolo correlato - Matplotlib Legend