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)))

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