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