Seaborn:标注线性回归方程

新手上路,请多包涵

我尝试为波士顿数据集拟合 OLS。我的图表如下所示。

如何在线上方或图中某处注释线性回归方程?如何在 Python 中打印方程式?

我对这个领域还很陌生。目前正在探索 python。如果有人可以帮助我,那将加快我的学习曲线。

非常感谢!

OLS拟合

我也试过了。

在此处输入图像描述

我的问题是 - 如何以方程式格式在图中注释以上内容?

原文由 Naive_Natural2511 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 884
2 个回答

您可以使用线性拟合系数制作图例,如本例所示:

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

tips = sns.load_dataset("tips")

# get coeffs of linear fit
slope, intercept, r_value, p_value, std_err = stats.linregress(tips['total_bill'],tips['tip'])

# use line_kws to set line label for legend
ax = sns.regplot(x="total_bill", y="tip", data=tips, color='b',
 line_kws={'label':"y={0:.1f}x+{1:.1f}".format(slope,intercept)})

# plot legend
ax.legend()

plt.show()

在此处输入图像描述

如果您使用更复杂的拟合函数,您可以使用乳胶通知: https ://matplotlib.org/users/usetex.html

原文由 Serenity 发布,翻译遵循 CC BY-SA 3.0 许可协议

要在使用 seaborn lmplot 的情况下注释多个线性回归线,您可以执行以下操作。

  import pandas as pd
 import seaborn as sns
 import matplotlib.pyplot as plt

df = pd.read_excel('data.xlsx')
# assume some random columns called EAV and PAV in your DataFrame
# assume a third variable used for grouping called "Mammal" which will be used for color coding
p = sns.lmplot(x=EAV, y=PAV,
        data=df, hue='Mammal',
        line_kws={'label':"Linear Reg"}, legend=True)

ax = p.axes[0, 0]
ax.legend()
leg = ax.get_legend()
L_labels = leg.get_texts()
# assuming you computed r_squared which is the coefficient of determination somewhere else
slope, intercept, r_value, p_value, std_err = stats.linregress(df['EAV'],df['PAV'])
label_line_1 = r'$y={0:.1f}x+{1:.1f}'.format(slope,intercept)
label_line_2 = r'$R^2:{0:.2f}$'.format(0.21) # as an exampple or whatever you want[!
L_labels[0].set_text(label_line_1)
L_labels[1].set_text(label_line_2)

结果: 在此处输入图像描述

原文由 RMS 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题