Legendas (Marcadores)
Número de colunas
O número de colunas dentro da legenda pode ser controlado através do parâmetro ncol
, que recebe um número (int
) maior do que 0
(padrão é 1
). Por exemplo, para deixar a legenda com duas colunas, basta passar ncol = 2
.
plt.figure(figsize=(8,6))
plt.scatter(cachorro_peso, cachorro_altura, label="Cachorros")
plt.scatter(gatos_peso, gatos_altura, label="Gatos")
plt.plot(pinguins_peso, pinguins_altura, marker="o", c="g", label="Pinguins")
plt.xlabel("Peso (kg)")
plt.ylabel("Altura (cm)")
plt.title("Relação entre peso e altura de diferentes animais")
plt.ylim([0,125])
plt.legend(ncol=2)
plt.show()
Figura 1 - Legendas com o número de colunas alterado.
Observe que se o valor passado para ncol
for maior do que o número de labels
inseridos, o número de colunas será igual a número total de labels
inseridos.
Por exemplo, caso ncol=40
, obtemos apenas 3 colunas:
plt.figure(figsize=(8,6))
plt.scatter(cachorro_peso, cachorro_altura, label="Cachorros")
plt.scatter(gatos_peso, gatos_altura, label="Gatos")
plt.plot(pinguins_peso, pinguins_altura, marker="o", c="g", label="Pinguins")
plt.xlabel("Peso (kg)")
plt.ylabel("Altura (cm)")
plt.title("Relação entre peso e altura de diferentes animais")
plt.ylim([0,125])
plt.legend(ncol=40)
plt.show()
Figura 2 - Legendas com o número de colunas alterado.
Número de marcadores
É possível determinar o número de marcadores que são inseridos na legenda. O parâmetro que deve ser utilizado para realizar esta alteração, depende do tipo de método que foi utilizado para desenhar o gráfico.
plt.plot()
O número de marcadores dentro da legenda é controlado através do parâmetro numpoints
, passando um int
maior do que 0
(padrão é 1
).
Por exemplo, para alterar o número de pontos para 3:
plt.figure(figsize=(8,6))
plt.scatter(cachorro_peso, cachorro_altura, label="Cachorros")
plt.scatter(gatos_peso, gatos_altura, label="Gatos")
plt.plot(pinguins_peso, pinguins_altura, marker="o", c="g", label="Pinguins")
plt.xlabel("Peso (kg)")
plt.ylabel("Altura (cm)")
plt.title("Relação entre peso e altura de diferentes animais")
plt.ylim([0,125])
plt.legend(ncol=2, numpoints=3)
plt.show()
Figura 3 - Legendas com o número de marcadores alterado.
Observe que apenas a legenda referente aos Pinguins, que foi criada utilizando o plt.plot()
, teve o número de pontos alterado para 3, enquanto que as demais seguem com apenas um marcador na legenda.
plt.scatter()
O número de marcadores dentro da legenda é controlado através do parâmetro scatterpoints
, passando um int
maior do que 0
(padrão é 1
).
plt.figure(figsize=(8,6))
plt.scatter(cachorro_peso, cachorro_altura, label="Cachorros")
plt.scatter(gatos_peso, gatos_altura, label="Gatos")
plt.plot(pinguins_peso, pinguins_altura, marker="o", c="g", label="Pinguins")
plt.xlabel("Peso (kg)")
plt.ylabel("Altura (cm)")
plt.title("Relação entre peso e altura de diferentes animais")
plt.ylim([0,125])
plt.legend(ncol=2, scatterpoints=3)
plt.show()
Figura 4 - Legendas com o número de marcadores alterado.
Observe que a legenda referente aos Gatos e aos Cachorros, que foi criada utilizando o plt.scatter()
, teve o número de pontos alterado para 3.
plt.scatter() e plt.plot()
É possível utilizar o scatterpoints
e o numpoints
ao mesmo tempo, e com valores diferentes. Dessa forma, é possível alterar o número de marcadores dos elementos criados com o plt.scatter()
e com o plt.plot()
.
plt.figure(figsize=(8,6))
plt.scatter(cachorro_peso, cachorro_altura, label="Cachorros")
plt.scatter(gatos_peso, gatos_altura, label="Gatos")
plt.plot(pinguins_peso, pinguins_altura, marker="o", c="g", label="Pinguins")
plt.xlabel("Peso (kg)")
plt.ylabel("Altura (cm)")
plt.title("Relação entre peso e altura de diferentes animais")
plt.ylim([0,125])
plt.legend(ncol=2, scatterpoints=3, numpoints=2)
plt.show()
Figura 5 - Legendas com o número de marcadores alterado.
Offset dos marcadores
É possível controlar a distância vertical dos marcadores dentro da legenda, o que é feito através do parâmetro scatteryoffsets
. Este parâmetro deve receber uma sequência (list
, tuple
, ndarray
, etc) contendo números do tipo float
com valores entre 0.0
e 1.0
(padrão é [0.375, 0.5, 0.3125]
).
Por exemplo, para deixar todos os marcadores na mesma altura, basta passar um único valor através de uma list
([0.5]
).
plt.figure(figsize=(8,6))
plt.scatter(cachorro_peso, cachorro_altura, label="Cachorros")
plt.scatter(gatos_peso, gatos_altura, label="Gatos")
plt.plot(pinguins_peso, pinguins_altura, marker="o", c="g", label="Pinguins")
plt.xlabel("Peso (kg)")
plt.ylabel("Altura (cm)")
plt.title("Relação entre peso e altura de diferentes animais")
plt.ylim([0,125])
plt.legend(ncol=2, scatterpoints=3, numpoints=2, scatteryoffsets=[0.5])
plt.show()
Figura 6 - Legendas com a posição dos marcadores alterada.
Para variar estas distâncias, basta passar valores distintos em cada elemento da list
passada. Por exemplo:
plt.figure(figsize=(8,6))
plt.scatter(cachorro_peso, cachorro_altura, label="Cachorros")
plt.scatter(gatos_peso, gatos_altura, label="Gatos")
plt.plot(pinguins_peso, pinguins_altura, marker="o", c="g", label="Pinguins")
plt.xlabel("Peso (kg)")
plt.ylabel("Altura (cm)")
plt.title("Relação entre peso e altura de diferentes animais")
plt.ylim([0,125])
plt.legend(ncol=2, scatterpoints=3, numpoints=2, scatteryoffsets=[0.2, 0.5, 0.9])
plt.show()
Figura 7 - Legendas com a posição dos marcadores alterada.
Observe que a legenda referente aos Gatos e aos Cachorros, que foi criada utilizando o plt.scatter()
, teve a posição alterada, enquanto que a legenda referente aos Pinguins, que foi criada utilizando o plt.plot()
, não teve mudança.
Escala dos marcadores
Podemos controlar a escala relativa dos marcadores dentro da legenda em relação ao tamanho original, o que é feito através do parâmetro markerscale
. Este parâmetro que deve receber um número (float
ou int
), sendo que o valor padrão é 1.0
.
plt.figure(figsize=(8,6))
plt.scatter(cachorro_peso, cachorro_altura, label="Cachorros")
plt.scatter(gatos_peso, gatos_altura, label="Gatos")
plt.plot(pinguins_peso, pinguins_altura, marker="o", c="g", label="Pinguins")
plt.xlabel("Peso (kg)")
plt.ylabel("Altura (cm)")
plt.title("Relação entre peso e altura de diferentes animais")
plt.ylim([0,125])
plt.legend(ncol=2, markerscale=2.5)
plt.show()
Figura 8 - Legendas com o tamanho dos marcadores alterada.
Posição dos marcadores em relação ao label
É possível alterar a posição em que o marcador é desenhado na legenda em relação ao label
, o que é feito através do parâmetro markerfirst
, que deve receber um valor bool
(True
(padrão) ou False
).
- Caso
markerfirst = True
(padrão) o marcador é desenhado à esquerda do texto da legenda; - Caso
markerfirst = False
o marcador é desenhado à direita do texto da legenda;
Por exemplo, para deixar o marcador do lado esquerdo do label, basta passar markerfirst = False
:
plt.figure(figsize=(8,6))
plt.scatter(cachorro_peso, cachorro_altura, label="Cachorros")
plt.scatter(gatos_peso, gatos_altura, label="Gatos")
plt.plot(pinguins_peso, pinguins_altura, marker="o", c="g", label="Pinguins")
plt.xlabel("Peso (kg)")
plt.ylabel("Altura (cm)")
plt.title("Relação entre peso e altura de diferentes animais")
plt.ylim([0,125])
plt.legend(ncol=2, markerfirst=False)
plt.show()
Figura 9 - Legendas com a posição dos marcadores em relação aos labels alterada.