Curso matplotlib - Gráfico de dispersão (editando o tamanho do marcador)

2 minute read


Existem basicamente dois motivos para alterar o tamanho padrão dos marcadores. O primeiro é por questões de design, de forma a deixar o marcador de um tamanho adequado para o leitor ter uma boa visualização do gráfico. O segundo é para destacar alguma informação a mais no gráfico. Por exemplo, caso tenha uma segunda variável dependente, é possível deixar o tamanho dos pontos relativo a esta outra variável, aumentando a quantidade de informações contidas no gráfico (gráfico de bolhas). Iremos abordar com detalhes este tipo de gráfico mais a frente.

Alterando o tamanho do marcador

banner provisório

O parâmetro que deve ser passado para alterar o tamanho dos marcadores é o parâmetro s, que deve receber um número inteiro (int) ou decimal (float). O tamanho padrão dos marcadores 20.

Por exemplo, para deixar os macadores menores (do que o padrão), basta passar um número menor do que 20 através do parâmetro s:

plt.figure(figsize=(8,6))
plt.scatter(x,y, c='red', s = 10)
plt.show()

Figura 1 - Gráfico de dispersão com o tamanho dos marcadores alterado.

gráfico de dispersão desenhado utilizando o **matplotlib** com os marcadores com tamanho menor do que o padrão




Observe que na célula acima, os valores de x e y foram passados diretamante para o plt.scatter(). Antes, era feito desta forma:

plt.scatter(x=x, y=y)

E agora foi feito desta forma:

plt.scatter(x, y)

Obtemos o mesmo gráfico, independentemente da forma utilizada. Mas observe que isto funciona pois estou passando os valores de x e y na ordem esperada pelo plt.scatter(). Caso fosse passado o y para primeiro parâmetro e o x como segundo parâmetro, desta forma:

plt.scatter(y, x)

Os valores de y seriam utilizados no eixo x, e os valores de x seriam utilizados no eixo y:

Figura 2 - Gráfico de dispersão invertido.

gráfico de dispersão desenhado utilizando o **matplotlib** com os valores de y no lugar eixo x, e os valores de x no eixo y.

Observe a diferença entre a Figura 1 e a Figura 2.

Entretanto, a forma abaixo estaria correta, pois esta sendo efetivamente dito qual parâmetro esta sendo alterado, independentemente da ordem.

plt.scatter(y=y, x=x)

Este comportamento acontece pois os parâmetros podem ser passados para uma função na ordem esperada ou indicando explicitamente para qual parametro a variável esta sendo passada.




Para deixar os marcadores maiores (do que o padrão), basta passar um número maior do que 20 para o parãmetro s:

plt.figure(figsize=(8,6))
plt.scatter(x,y, c='red', s = 100.1)
plt.show()

Figura 3 - Gráfico de dispersão com o tamanho dos marcadores alterado.

gráfico de dispersão desenhado utilizando o **matplotlib** com os marcadores com tamanho maior do que o padrão


Também podemos passar uma sequência (list, tuple, ndarray, etc) para o parâmetro s, onde cada elemento deve ser um número correspondente ao tamanho do marcador. Esta sequência deve ter o mesmo tamanho que o número de pontos do gráfico.

Por exemplo, a lista tamanhos, contém apenas valores númericos:

tamanhos = [40, 40, 50, 50, 60, 10, 10, 100, 100, 150, 150]

Podemos utilizar esta lista (tamanhos) para alterar o tamanho de cada marcador, passando ela para o s:

plt.figure(figsize=(8,6))
plt.scatter(x,y, c='red', s = tamanhos)
plt.show()

Figura 4 - Gráfico de dispersão com o tamanho dos marcadores alterado utilizando uma lista.

gráfico de dispersão desenhado utilizando o **matplotlib** com os marcadores variando de tamanho dependendo do valor contido em uma lista


Observe que a lista tamanhos e x tem o mesmo número de elementos:

len(tamanhos) == len(x)

True


Qual é o tipo de variável que deve ser passado através do parâmetro s para o plt.scatter() para alterar o tamanho do marcador?

int

float

string


Anterior Próximo

Updated: