So erstellen sie ein seaborn-streudiagramm mit einem korrelationskoeffizienten


Sie können die folgende grundlegende Syntax verwenden, um in Seaborn ein Streudiagramm zu erstellen und dem Diagramm einen Korrelationskoeffizienten hinzuzufügen:

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

Das folgende Beispiel zeigt, wie diese Syntax in der Praxis verwendet wird.

Beispiel: Erstellen Sie ein Seaborn-Streudiagramm mit einem Korrelationskoeffizienten

Nehmen wir an, wir haben den folgenden Pandas-DataFrame, der die Punkte und Assists verschiedener Basketballspieler anzeigt:

 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

Wir können die folgende Syntax verwenden, um ein Streudiagramm zu erstellen, um die Beziehung zwischen Durchgängen und Punkten zu visualisieren, und außerdem die Funktion „pearsonr()“ von scipy verwenden, um den Korrelationskoeffizienten zwischen diesen beiden Variablen zu berechnen:

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

Meerespunktwolke mit Korrelationskoeffizient

Aus dem Ergebnis können wir ersehen, dass der Pearson-Korrelationskoeffizient zwischen Assists und Punkten 0,78 beträgt.

Verwandt: Was gilt als „starke“ Korrelation?

Beachten Sie, dass wir die Funktion „round()“ verwendet haben, um den Korrelationskoeffizienten auf zwei Dezimalstellen zu runden.

Sie können jederzeit auf eine andere Anzahl von Dezimalstellen runden und auch das Argument „fontsize“ verwenden, um die Schriftgröße des Korrelationskoeffizienten im Diagramm zu ändern:

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

Beachten Sie, dass der Korrelationskoeffizient jetzt auf vier Dezimalstellen gerundet ist und die Schriftgröße viel größer ist als im vorherigen Beispiel.

Hinweis : Die vollständige Dokumentation für die Seaborn -Scatterplot()- Funktion finden Sie hier .

Zusätzliche Ressourcen

In den folgenden Tutorials wird erläutert, wie Sie andere allgemeine Funktionen in Seaborn ausführen:

So zeichnen Sie eine Verteilung in Seaborn auf
So bestellen Sie Boxplots auf der x-Achse in Seaborn
So fügen Sie dem Seaborn-Plot eine Tabelle hinzu

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert