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!