Come creare un grafico a dispersione seaborn con un coefficiente di correlazione


È possibile utilizzare la seguente sintassi di base per creare un grafico a dispersione in Seaborn e aggiungere un coefficiente di correlazione al grafico:

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

L’esempio seguente mostra come utilizzare questa sintassi nella pratica.

Esempio: creare un diagramma a dispersione Seaborn con un coefficiente di correlazione

Diciamo che abbiamo il seguente DataFrame dei panda che mostra i punti e gli assist di vari giocatori di basket:

 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

Possiamo utilizzare la seguente sintassi per creare un grafico a dispersione per visualizzare la relazione tra passaggi e punti e utilizzare anche la funzione peppersonr() di scipy per calcolare il coefficiente di correlazione tra queste due variabili:

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

nuvola di punti marini con coefficiente di correlazione

Dal risultato possiamo vedere che il coefficiente di correlazione di Pearson tra assist e punti è 0,78 .

Correlati: cos’è considerata una correlazione “forte”?

Tieni presente che abbiamo utilizzato la funzione round() per arrotondare il coefficiente di correlazione a due cifre decimali.

Sentiti libero di arrotondare a un numero diverso di cifre decimali e sentiti anche libero di usare l’argomento fontsize per modificare la dimensione del carattere del coefficiente di correlazione sul grafico:

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

Si noti che il coefficiente di correlazione è ora arrotondato a quattro cifre decimali e la dimensione del carattere è molto maggiore rispetto all’esempio precedente.

Nota : puoi trovare la documentazione completa per la funzione seaborn scatterplot() qui .

Risorse addizionali

I seguenti tutorial spiegano come eseguire altre funzioni comuni in Seaborn:

Come tracciare una distribuzione in Seaborn
Come ordinare boxplot sull’asse x in Seaborn
Come aggiungere una tabella alla trama Seaborn

Aggiungi un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *