Seaborn回归图用不同的颜色

时间:2017-11-21 07:08:16

标签: python regression seaborn

我想使用Seaborn绘制适合我的数据集的线性回归模型。

由于这个数据集在水柱(底部,中部和顶部)有不同的深度,我希望我的绘图有3种不同的颜色,但线性回归将是整个数据集。我将这个数据集分开来分别绘制它们,如下所示:

fig, axarr = plt.subplots(3, sharex = True)
axarr[0].scatter(averageOBSB_3min,PumpBotSSC,c='r', label='Bottom')
axarr[0].scatter(averageOBSM_3min,PumpMidSSC,c='g', label='Middle')
axarr[0].scatter(averageOBST_3min,PumpTopSSC,c='b', label='Top')

但这显然不适用于Seaborn。

我的问题是:如何在绘图上使用不同的颜色,但是对孔数据集进行回归?

2 个答案:

答案 0 :(得分:1)

混合使用Seaborn' lmplotregplot

import seaborn as sns
#Use lmplot to plot scatter points
graph = sns.lmplot(x='x_value', y='y_value', hue='water_value', data=df, fit_reg=False)
#Use regplot to plot the regression line for the whole points
sns.regplot(x='x_value', y='y_value', data=df, scatter=False, ax=graph.axes[0, 0]))

答案 1 :(得分:0)

这是@O.Suleiman 回答和您的评论的扩展。 Seaborn lmplotregplot 有办法直接用它的参数注释你的拟合。为此,您应该检查此 post。总结这两个解决方案,由于您没有提供任何数据,我使用了 seaborn 数据集,您将使用的是:

import seaborn as sns
from scipy import stats

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

# Use lmplot to plot scatter points
sns.lmplot(x='total_bill', y='tip', hue='smoker', data=tips, fit_reg=False, legend=False)

# Use regplot to plot the regression line and use line_kws to set line label for legend
ax = sns.regplot(x="total_bill", y="tip", data=tips, scatter_kws={"zorder":-1},
line_kws={'label':"y={0:.1f}x+{1:.1f}".format(slope,intercept)})

# plot legend
ax.legend()

pic