So zeigen sie eine regressionsgleichung in seaborn regplot an


Mit der Funktion „seaborn regplot“ können Sie ein lineares Regressionsmodell zeichnen, das an einen Datensatz angepasst ist.

Leider verfügt Seaborn nicht über eine integrierte Funktion zum Extrahieren der Regressionsgleichung aus der Linie, aber Sie können die Funktion scipy.stats.linregress verwenden, um die Regressionskoeffizienten schnell zu finden:

 import scipy
import seaborn as sns

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

#calculate slope and intercept of regression equation
slope, intercept, r, p, sterr = scipy. stats . linregress (x= p.get_lines ()[0] .get_xdata (),
                                                       y=p. get_lines ()[0]. get_ydata ())

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

Beispiel: Regressionsgleichung im Seaborn Regplot anzeigen

Angenommen, wir haben den folgenden Pandas-DataFrame, der Informationen über die gelernten Stunden und Abschlussprüfungsergebnisse verschiedener Studenten enthält:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' hours ': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10],
                   ' score ': [77, 79, 84, 80, 81, 89, 95, 90, 83, 89]})

#view DataFrame
print (df)

   hours score
0 1 77
1 2 79
2 3 84
3 4 80
4 5 81
5 6 89
6 7 95
7 8 90
8 9 83
9 10 89

Nehmen wir an, wir möchten die Datenpunkte grafisch darstellen und den Daten eine angepasste Regressionslinie hinzufügen.

Wir können dazu die folgende Syntax verwenden:

 import scipy
import seaborn as sns

#create regplot
p = sns. regplot (data=df, x=df. hours , y=df. score )

#calculate slope and intercept of regression equation
slope, intercept, r, p, sterr = scipy. stats . linregress (x= p.get_lines ()[0] .get_xdata (),
                                                       y=p. get_lines ()[0]. get_ydata ())

#display slope and intercept of regression equation
print (intercept, slope)

77.39999999999995 1.3272727272727356

Aus dem Ergebnis können wir ersehen, dass die Regressionsgerade die folgende Gleichung hat:

y = 77,4 + 1,327

Wenn wir diese Gleichung im Seaborn- Regplot anzeigen möchten, können wir die Funktion matplotlib text() verwenden:

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

#create regplot
p = sns. regplot (data=df, x=df. hours , y=df. score )

#calculate slope and intercept of regression equation
slope, intercept, r, p, sterr = scipy. stats . linregress (x= p.get_lines ()[0] .get_xdata (),
                                                       y=p. get_lines ()[0]. get_ydata ())

#add regression equation to plot
plt. text (2, 95, ' y = ' + str(round(intercept,3)) + ' + ' + str(round(slope,3)) + ' x ') 

Seaborn Regplot-Gleichung

Beachten Sie, dass die Regressionsgleichung jetzt in der oberen linken Ecke des Diagramms angezeigt wird.

Beachten Sie, dass wir in der Funktion text() angegeben haben, dass die Regressionsgleichung anhand der (x, y)-Koordinaten von (2, 95) angezeigt werden soll.

Sie können diese Koordinaten jederzeit ändern, um die Regressionsgleichung an einer beliebigen Stelle in Ihrem eigenen Diagramm anzuzeigen.

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

Zusätzliche Ressourcen

Die folgenden Tutorials erklären, wie Sie andere häufige Aufgaben in Seaborn ausführen:

So passen Sie die Figurengröße eines Seaborn-Diagramms an
So ändern Sie die Position einer Legende in Seaborn
So ändern Sie Achsenbeschriftungen in einem Seaborn-Diagramm

Einen Kommentar hinzufügen

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