Fazer a Lenda do Terreno de Dispersão em Matplotlib

Suraj Joshi 15 fevereiro 2024
  1. Adicionar uma legenda ao gráfico de dispersão 2D em Matplotlib
  2. Adicionar uma lenda ao gráfico de dispersão 3D em Matplotlib
Fazer a Lenda do Terreno de Dispersão 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:

Adicionar legenda a um gráfico de dispersão 2D

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:

Adicionar legenda a um gráfico de dispersão 2D especificando a localização em Matplotlib

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:

Adicionar legenda a um gráfico de dispersão 3D

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 avatar Suraj Joshi avatar

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

LinkedIn

Artigo relacionado - Matplotlib Scatter Plot

Artigo relacionado - Matplotlib Legend