在我的常规数据分析工作中,我已经切换到使用100%python,因为seaborn包可用。非常感谢这个精彩的套餐。 但是,我想念的一个excel-chart功能是在使用lmplot()函数时显示polyfit方程和/或R2值。有没有人知道添加它的简单方法?
答案 0 :(得分:21)
它无法使用lmplot
自动完成,因为当有多个回归拟合时(即使用hue
,{{1},它未定义该值应对应的内容}或row
变量。
但这是类似col
函数的一部分。默认情况下,它显示相关系数和p值:
jointplot
但你可以传递任何功能。如果你想要R ^ 2,你可以这样做:
import seaborn as sns
import numpy as np
x, y = np.random.randn(2, 40)
sns.jointplot(x, y, kind="reg")
答案 1 :(得分:4)
现在可以使用 FacetGrid 方法 .map() 或 .map_dataframe() 来完成:
import seaborn as sns
import scipy as sp
tips = sns.load_dataset('tips')
g = sns.lmplot(x='total_bill', y='tip', data=tips, row='sex',
col='time', height=3, aspect=1)
def annotate(data, **kws):
r, p = sp.stats.pearsonr(data['total_bill'], data['tip'])
ax = plt.gca()
ax.text(.05, .8, 'r={:.2f}, p={:.2g}'.format(r, p),
transform=ax.transAxes)
g.map_dataframe(annotate)
plt.show()