Como criar um gráfico de dispersão seaborn com um coeficiente de correlação


Você pode usar a seguinte sintaxe básica para criar um gráfico de dispersão no Seaborn e adicionar um coeficiente de correlação ao gráfico:

 import scipy
import matplotlib. pyplot as plt
import seaborn as sns

#calculate correlation coefficient between x and y
r = scipy. stats . pearsonr (x=df. x , y=df. y )[0]

#create scatterplot
sns. scatterplot (data=df, x=df. x , y=df. y )

#add correlation coefficient to plot
plt. text (5, 30, ' r = ' + str ( round (r,2)))

O exemplo a seguir mostra como usar essa sintaxe na prática.

Exemplo: Crie um gráfico de dispersão Seaborn com um coeficiente de correlação

Digamos que temos o seguinte DataFrame do pandas que mostra os pontos e assistências de vários jogadores de basquete:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' team ': ['A', 'A', 'A', 'A', 'B', 'C', 'C', 'C', 'D', 'D'],
                   ' points ': [12, 11, 18, 15, 14, 20, 25, 24, 32, 30],
                   ' assists ': [4, 7, 7, 8, 9, 10, 10, 12, 10, 15]})

#view DataFrame
print (df)

  team points assists
0 to 12 4
1 to 11 7
2 To 18 7
3 to 15 8
4 B 14 9
5 C 20 10
6 C 25 10
7 C 24 12
8 D 32 10
9 D 30 15

Podemos usar a seguinte sintaxe para criar um gráfico de dispersão para visualizar a relação entre passagens e pontos e também usar a função pearsonr() do scipy para calcular o coeficiente de correlação entre essas duas variáveis:

 import scipy
import matplotlib. pyplot as plt
import seaborn as sns

#calculate correlation coefficient between assists and points
r = scipy. stats . pearsonr (x=df. assists , y=df. points )[0]

#create scatterplot
sns. scatterplot (data=df, x=df. assists , y=df. points )

#add correlation coefficient to plot
plt. text (5, 30, ' r = ' + str ( round (r,2))) 

nuvem de pontos marinhos com coeficiente de correlação

Pelo resultado, podemos perceber que o coeficiente de correlação de Pearson entre assistências e pontos é de 0,78 .

Relacionado: O que é considerado uma correlação “forte”?

Observe que usamos a função round() para arredondar o coeficiente de correlação para duas casas decimais.

Sinta-se à vontade para arredondar para um número diferente de casas decimais e também use o argumento fontsize para alterar o tamanho da fonte do coeficiente de correlação no gráfico:

 import scipy
import matplotlib. pyplot as plt
import seaborn as sns

#calculate correlation coefficient between assists and points
r = scipy. stats . pearsonr (x=df. assists , y=df. points )[0]

#create scatterplot
sns. scatterplot (data=df, x=df. assists , y=df. points )

#add correlation coefficient to plot
plt. text (5, 30, ' r= '+ str ( round (r,4)), fontsize= 20 )) 

Observe que o coeficiente de correlação agora é arredondado para quatro casas decimais e o tamanho da fonte é muito maior do que no exemplo anterior.

Nota : Você pode encontrar a documentação completa para a função seaborn scatterplot() aqui .

Recursos adicionais

Os tutoriais a seguir explicam como executar outras funções comuns no Seaborn:

Como traçar uma distribuição no Seaborn
Como solicitar boxplots no eixo x no Seaborn
Como adicionar uma tabela ao gráfico Seaborn

Add a Comment

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