Fazer a Lenda do Terreno de Dispersão em Matplotlib
- Adicionar uma legenda ao gráfico de dispersão 2D em Matplotlib
- Adicionar uma lenda ao gráfico de dispersão 3D em Matplotlib
A legenda é simplesmente a descrição de vários elementos de uma figura. Podemos gerar uma legenda do gráfico de dispersão utilizando a função matplotlib.pyplot.legend
.
Adicionar uma legenda ao gráfico de dispersão 2D em 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()
Resultado:
Temos duas parcelas de dispersão separadas na figura: uma representada por x
e outra pela marca o
. Atribuímos o label
a cada gráfico de dispersão utilizado como uma etiqueta enquanto geramos a legenda. Depois, criamos a legenda na figura utilizando a função legend()
e finalmente exibimos a figura inteira utilizando o método show()
.
Podemos também passar directamente um array de etiquetas como argumento para o método legend()
e alterar a posição da legenda utilizando o parâmetro loc
do método 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()
Resultado:
Este processo cria uma figura com duas parcelas de dispersão e uma lenda colocada no centro à esquerda da caixa de fronteira dos eixos.
Adicionar uma lenda ao gráfico de dispersão 3D em 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()
Resultado:
Para criar uma legenda para o gráfico de dispersão 3D
, utilizamos o método plot()
em vez do método scatter()
; é porque o método legend()
não suporta Patch3DCollection
devolvido pelo método scatter()
da instância Axes3D
.
Suraj Joshi is a backend software engineer at Matrice.ai.
LinkedInArtigo relacionado - Matplotlib Scatter Plot
- Como plotar a lista de coordenadas X,y em Matplotlib
- Definir Cor para Scatterplot em Matplotlib
- Pontos de dispersão de etiquetas Matplotlib
- Pontos de Lote em Matplotlib