Curso matplotlib - Gráfico de dispersão (alterando os marcadores)
Os marcadores tem uma grande importância no entendimento dos gráficos. Dependendo do tipo de dado, é preferivel utilizar algum tipo de marcador, que talvez não seja adequado para outros tipos de dados. Além disso, utilizar marcadores diferentes é uma das melhores formas de diferenciar séries diferentes em um mesmo gráfico.
Alterando o tipo do marcador
Para alterar o tipo do marcador utilizamos o parâmetro marker
, que deve receber uma str
contendo o símbolo desejado ou um número inteiro (int
) da lista de referências de marcadores.
Os marcadores mais utilizados são:
"."
(ponto);"o"
(circulo);"v"
(triângulo para cima);"s"
(quadrado);"\* "
(estrela);"D"
(diamante);"+"
(mais);
Na Figura abaixo você pode visualizar todos os marcadores disponíveis:
O script utilizado para desenhar o gráfico acima pode ser acessado neste link.
Você encontra maiores informações na documentação.
Por exemplo, para deixar os marcadores em formato de diamante:
plt.figure(figsize=(8,6))
plt.scatter(x,y, c='red', s = 100.1, marker = "D")
plt.show()
Figura 1 - Gráfico de dispersão com o marcador em formato de diamante.
Veremos como deixar os marcadores com símbolos diferentes mais a frente.
Alterando a cor da linha do marcador (bordas do marcador)
Também é possível alterar a cor das linhas (bordas) dos marcadores de forma bem simples, bastando passar o nome da cor desejada (como uma str
) através do parâmetro edgecolors
. As cores seguem o mesmo padrão apresentado no item alterando a cor do marcador.
Por exemplo, para deixar a borda na cor preta:
plt.figure(figsize=(8,6))
plt.scatter(x,y, c='red', s = 100.1, marker = "D", edgecolors = 'k')
plt.show()
Figura 2 - Gráfico de dispersão com marcadores com bordas na cor preta.
Também podemos passar uma sequência de elementos (list
, tuple
, ndarray
, etc) com os nomes das cores para alterar a cor da borda de cada ponto do gráfico.
Utilizando a lista cores
criada anteriormente:
plt.figure(figsize=(8,6))
plt.scatter(x,y, c='red', s = 100.1, marker = "D", edgecolors = cores)
plt.show()
Figura 3 - Gráfico de dispersão com marcadores com bordas com diversas cores.
Alterando a espessura da linha do marcador (espessura da borda)
Também é possível alterar a espessura da borda dos marcadores, o que é feito passando um número inteiro (int
) ou decimal (float
) através do parâmetro linewidths
.
plt.figure(figsize=(8,6))
plt.scatter(x,y, c='red', s = 100.1, marker = "D", edgecolors = cores, linewidths=2.5)
plt.show()
Figura 4 - Gráfico de dispersão com marcadores com bordas com diversas cores com a borda mais espessa.
Também podemos passar uma sequência (list
, tuple
, etc) com diversos valores para a espessura das bordas. Por exemplo, podemos utilizar a list
:
espessura_marcador = [1, 1.2, 1.4, 1.6, 1.8, 2, 2.2, 2.4, 2.6, 2.8, 3.0]
que contém apenas valores numéricos e o mesmo tamanho de x
para alterar a espessura da borda de cada marcador indivualmente:
plt.figure(figsize=(8,6))
plt.scatter(x,y, c='red', s = 100.1, marker = "D", edgecolors = cores, linewidths=espessura_marcador)
plt.show()
Figura 5 - Gráfico de dispersão com marcadores com bordas com diversas cores com a borda com espessura variada.
Alterando a cor de preenchimento do marcador
É possível alterar a cor de dentro (interior) dos marcadores, o que é feito passando o nome da cor desejada através do parâmetro facecolors
. As cores seguem o mesmo padrão apresentado no item alterando a cor do marcador.
Entretanto, não devemos passar o parâmetro color
, pois ele tem prioridade mais elevada no código e irá sobrescrever as cores.
Por exemplo, se adicionarmos o facecolors='g'
no gráfico que estamos construindo, não teremos mudanças visuais no gráfico:
plt.figure(figsize=(8,6))
plt.scatter(x,y, c = 'red', s = 100.1, marker = "D", edgecolors = 'k', facecolors='g')
plt.show()
Figura 6 - Gráfico de dispersão com marcadores com o parâmetro color
tendo precedencia ao parâmetro facecolors
.
Como foi utilizado o parâmetro facecolors='g'
, era esperado que as cores das faces ficassem verdes, o que não aconteceu. Mas ao remover parâmetro c
, teremos o resultado desejado:
plt.figure(figsize=(8,6))
plt.scatter(x,y, s = 100.1, marker = "D", edgecolors = 'k', facecolors='g')
plt.show()
Figura 7 - Gráfico de dispersão com marcadores na cor verde desenhado utilizando o parâmetro facecolors
.
Também é possível passar uma sequência (list
, tuple
, ndarray
, etc) com os nomes das cores para alterar a cor de preenchimento de cada marcador do gráfico individualmente. Utilizando a lista cores
criada anteriormente, obtemos o seguinte gráfico:
plt.figure(figsize=(8,6))
plt.scatter(x,y, s = 100.1, marker = "D", edgecolors = 'k', facecolors=cores)
plt.show()
Figura 8 - Gráfico de dispersão com marcadores com diversas cores.
Também é possível remover a cor do marcador, de forma a deixar ele “aberto”. Para fazer isto, basta passar facecolors = "none"
ou facecolors = "None"
:
plt.figure(figsize=(8,6))
plt.scatter(x,y, s = 100.1, marker = "D", edgecolors = 'k', facecolors='None')
plt.show()
Figura 9 - Gráfico de dispersão com marcadores abertos.