Seaborn implot与方程和R2文本

时间:2014-08-30 05:11:21

标签: python matplotlib seaborn

在我的常规数据分析工作中,我已经切换到使用100%python,因为seaborn包可用。非常感谢这个精彩的套餐。 但是,我想念的一个excel-chart功能是在使用lmplot()函数时显示polyfit方程和/或R2值。有没有人知道添加它的简单方法?

2 个答案:

答案 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")

enter image description here

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

enter image description here