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