Enviar um café pro programador

Gráficos de dispersão: scatter() plots em Python

 No tutorial passado, de nosso curso de programação científica em Python, demos início ao estudo da criação, geração e exibição de gráficos em Python, através da função plot(), da biblioteca Matplotlib e do módulo Pyplot.

Agora, vamos aprender sobre os gráficos de dispersão, o que são, para que serve, quando e como usá-los de maneira de correta em seus artigos, trabalhos e pesquisa.

Gráfico de Dispersão em Python: o que é e para que serve um gráfico de scatter

Nos gráficos anteriores, de linhas, através da função plot(), mostramos a relação do eixo y (vertical) em relação aos valores do eixo x (horizontal), ou seja, uma função, pois os valores de um eixo são dependentes dos valores do outro eixo.

Porém, nem sempre os valores dependem um do outro e precisamos analisar esses dados separadamente, para ver se ambos seguem algum padrão ou tendência.

Nesse tipo de dados, vamos plotar uma coleção de dados, geralmente um conjunto de pares ordenados, e cada par é representado simplesmente por um ponto. Veja, nos tutoriais anteriores também calculamos pontos através das funções, mas ligamos esses pontos com retas, o que gerou curvas aparentemente contínuas. Nos gráficos do tipo scatter, teremos uma dispersão de pontos:

Scatter plot em 2D no Python
Gráfico de dispersão 2D com dados da demora entre erupções de um vulcão e da duração dessas erupções. Note que os pontos se acumularam no início e no fim, ou seja, notamos um padrão

Como plotar gráficos de dispersão 3D em Python
Gráfico em 3D mostrando a energia de moléculas de um gás, em função da temperatura

Função scatter(): como plotar gráfico de dispersão em Python

Vamos usar a função scatter(), do módulo Pyplot da biblioteca Matplotlib, para gerar os gráficos de dispersão. Seu uso é bem semelhante ao da plot() onde, basicamente, devemos fornecer duas coleções de valores, primeiro o do eixo x e depois o do eixo y.

Por exemplo, será que existe uma relação entre a temperatura de uma estrela e seu brilho emitido? Baixe o arquivo 'estrelas.txt' de nosso GitHub:
https://github.com/jarlissonmoreira/PythonProgressivo/blob/main/Grafico-Scatter-Dispersao/estrelas.txt

Nele, há informações de quase 8 mil estrelas, com as informações da temperatura na primeira coluna e do brilho na segunda.

O código para a criação do gráfico de dispersão é:

import matplotlib.pyplot as plt import numpy as np dados = np.loadtxt("estrelas.txt", float) x = dados[:, 0] y = dados[:, 1] plt.xlim(0, 14000) plt.ylim(-3, 20) plt.xlabel("Temperatura") plt.ylabel("Brilho") plt.scatter(x,y, s=10) plt.show()

E o gráfico:
Como plotar um gráfico de dispersão


O valor s=10 é pra definir o tamanho do ponto (dot). Experimente usar o valor 5 e veja como ele diminui, ou não coloque esse argumento e veja o tamanho padrão.

Nenhum comentário:

Postar um comentário