Gráfico de Dispersão no Python

O gráfico de dispersão, ou scatterplot, é um gráfico no qual se traçam os diferentes pares de pontos (x, y) para entender como duas variáveis se relacionam. Em outras palavras, queremos saber se quando x, também observamos um aumento em y. Ou qualquer outra relação, claro. Nos exemplos abaixo, utilizaremos a biblioteca numpy para criar uma série aleatória e matplotlib para gerar o gráfico.

Vamos começar carregando as bibliotecas que serão utilizadas, criando duas séries de valores aleatórias e, enfim, traçar o gráfico desejado utilizando a função scatter() do Matplotlib:

# carrega bibliotecas
import numpy as np
import matplotlib.pyplot as plt

# gera numeros aleatorios para x e y
x = np.random.rand(100)
y = np.random.rand(100)

# plot grafico de dispersao
plt.scatter(x, y)


Para adicionar um título com plt.title:

# plot grafico de dispersao
plt.scatter(x, y)

# titulo do grafico
plt.title('Exemplo de Grafico de Dispersao')

Outras possibilidades é alterar as cores com c, que pode ser o código RGB ou a cor em inglês; e trocar o ponto por outros símbolos com o marker:

plt.scatter(x, y, c = 'red', marker = 's')
plt.title('Exemplo de Grafico de Dispersao')

Todas as variáveis possíveis você pode ver neste link. Já os markers possíveis você encontra neste link.

Mas e se quisermos fazer um gráfico com clusters? Isto é, separando por grupos?

Por exemplo, suponha que você tenha valores de x e y representando algum dado de estados diferentes, e queira que o gráfico represente cada estado com uma cor diferente. Nesse caso, você precisa combinar o for com o zip:

# dados de cada estado
SP= (0.9 * np.random.rand(20), 0.9*np.random.rand(20))
MG = (0.2 * np.random.rand(20), 0.2*np.random.rand(20))

# agrupa tabela
tabela_completa = (SP, MG)

# determina cor de cada estado no grafico
cores = ("blue", "red")

# cria um label para os grupos
estados = ("SP", "MG")

# Create plot
fig = plt.figure()
ax = fig.add_subplot(1, 1, 1, axisbg="1.0")

for data, color, group in zip(tabela_completa, cores, estados):
x, y = data
ax.scatter(x, y, alpha=0.8, c=color, edgecolors='none', s=30, label=group)

# titulo do grafico
plt.title('Graf. por Estado')

# insere legenda dos estados
plt.legend(loc=1)

Ps.: O título está sem acento por precaução. Normalmente esses softwares descaracterizam os nomes e o script quando há caracteres especiais. O Python até lida bem com acentos, mas o R, por exemplo, já apresenta problemas. Por isso, prefiro não utilizar.

Uma segunda opção para traçar gráficos de dispersão com diferentes agrupamentos você pode encontrar no blog apnorton.

E aí, curtiu o post?

E aí? Gostou do conteúdo? Se inscreva para receber todas as novidades. Deixe seu e-mail em INSCREVA-SE na barra à direita, logo abaixo de pesquisar. E, por favor, não deixe de comentar, dar seu feedback e, principalmente, compartilhar com seus amigos. De verdade, isso faz toda a diferença. Além disso, você também pode acompanhar mais do meu trabalho seguindo a conta de Twitter @UniDosDados, no Instagram @universidadedosdados ou por alguma das redes que você encontra em Sobre o Estatsite / Contato, como meu canal de Youtube Canal Universidade dos Dados.

Aproveite e adquira sua camiseta de data science na LOJA DA UNIVERSIDADE DOS DADOS. Vai ficar estiloso e me ajudar neste projeto!

BONS ESTUDOS!

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *