【发布时间】:2021-01-09 03:19:59
【问题描述】:
我对 seaborn 还是很陌生,所以请多多包涵。我正在尝试进行线性最小二乘回归并使用 seaborn 的 relplot 指定 r^2 值。我愿意切换到 sns.facetgrid。我的数据如下:
我可以将构面网格绘制为:Plots
我生成这样一个情节的代码如下:
xx = np.linspace(-1, 2, 100)
yx = xx
#CO2 vs H
p1 = sns.relplot(data=df2, x="H", y="CO2", col="Bias", hue="Met", col_wrap=5)
(p1.set_axis_labels("$E_{ads}(*H)$", "$E_{ads}(*CO_2)$")
.set_titles("Bias: {col_name} V vs SHE")
.set(xlim=(-0.4, 2), ylim=(-0.4, 2)))
for ax in p1.axes.flat:
ax.plot(xx, yx)
plt.savefig("CO2_H.pdf", dpi=300)
plt.show()
但是,我希望它不是对角线,而是线性回归。我发现了类似 here 的内容,但是当您在 sns.relplot 中指定列时,我无法弄清楚如何使其工作。
谢谢!
【问题讨论】:
-
我不知道 seaborn 是否有执行线性回归的能力,从未尝试过,但我建议简单地使用
sklearn.linear_model.LinerarRegression计算回归线的系数,然后正常绘制。或者,或者,使用numpy.linalg.lstsq计算最小二乘回归。 -
您正在使用
hue=嵌套。您是否期望每个色调级别有一个回归? -
不,我希望每个偏差都有一个回归。所以在上面显示的图像中,每个偏差处的每个色调级别(总共 5 个)都有一个数据点,所以我想对每个偏差处的这 5 个点(其中也有 5 个)执行回归。谢谢!
标签: python seaborn linear-regression facet-grid