Legendas (Marcadores)

4 minute read


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.

gráfico de dispersão combinado com gráfico de linhas desenhado com matplotlib, 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.

gráfico de dispersão combinado com gráfico de linhas desenhado com matplotlib, 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.

gráfico de dispersão combinado com gráfico de linhas desenhado com matplotlib, 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.

gráfico de dispersão combinado com gráfico de linhas desenhado com matplotlib, 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 scatterpointse 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.

gráfico de dispersão combinado com gráfico de linhas desenhado com matplotlib, 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.

gráfico de dispersão combinado com gráfico de linhas desenhado com matplotlib, 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.

gráfico de dispersão combinado com gráfico de linhas desenhado com matplotlib, 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.

gráfico de dispersão combinado com gráfico de linhas desenhado com matplotlib, 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.

gráfico de dispersão combinado com gráfico de linhas desenhado com matplotlib, com a posição dos marcadores em relação aos labels alterada.


Qual parâmetro deve ser passado para aumentar o número de colunas das legendas para 2?

num_cols=2

ncol=2

ncol="2"

num_col=2


Anterior Próximo

Updated: