如何在 seaborn regplot 中显示回归方程


您可以使用seaborn regplot函数绘制适合数据集的线性回归模型。

不幸的是,Seaborn 没有内置功能来从直线中提取回归方程,但您可以使用scipy.stats.linregress函数快速找到回归系数:

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

以下示例展示了如何在实践中使用此语法。

示例:在 Seaborn Regplot 中显示回归方程

假设我们有以下 pandas DataFrame,其中包含有关各个学生的学习时间和期末考试成绩的信息:

 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

假设我们要绘制数据点并向数据添加拟合回归线。

我们可以使用以下语法来做到这一点:

 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

从结果中我们可以看出回归线有如下方程:

y = 77.4 + 1.327

如果我们想在seaborn regplot上显示这个方程,我们可以使用matplotlib text()函数:

 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 方程

请注意,回归方程现在显示在图的左上角。

请注意,在text()函数中,我们指定回归方程应从 (2, 95) 的 (x, y) 坐标显示。

您可以随意修改这些坐标,以在您自己的图中任意位置显示回归方程。

注意:您可以 在此处找到seaborn regplot函数的完整文档。

其他资源

以下教程解释了如何在 Seaborn 中执行其他常见任务:

如何调整 Seaborn 图的图形大小
如何更改 Seaborn 中图例的位置
如何更改 Seaborn 图上的轴标签

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注