我可以使用带有熊猫数据框的散点图绘制回归线并显示参数吗?

Posted

技术标签:

【中文标题】我可以使用带有熊猫数据框的散点图绘制回归线并显示参数吗?【英文标题】:Can I draw a regression line and show parameters using scatterplot with a pandas dataframe? 【发布时间】:2016-07-25 01:43:59 【问题描述】:

我想使用以下代码从 Pandas 数据框生成散点图:

df.plot.scatter(x='one', y='two, title='Scatterplot') 

是否有我可以与语句一起发送的参数,所以它会绘制一条回归线并显示适合的参数?

类似:

df.plot.scatter(x='one', y='two', title='Scatterplot', Regression_line)

【问题讨论】:

【参考方案1】:

我认为 DataFrame.plot() 没有这样的参数。但是,您可以使用Seaborn 轻松实现此目的。 只需将 pandas 数据框传递给 lmplot(假设您已安装 seaborn):

import seaborn as sns
sns.lmplot(x='one',y='two',data=df,fit_reg=True) 

【讨论】:

太棒了!这个对我有用。你知道如何在图表上绘制回归参数吗? 不幸的是,使用 question 中发布的 lmplot 似乎是不可能的。不过,您可以在github 上查看此问题。 非常感谢您的帮助。 在 seaborn 或 lmplot 中有没有一种方法可以得到回归线的斜率值? @PascaldB,非常优雅!【参考方案2】:

可以使用sk-learn结合散点图得到回归线。

from sklearn.linear_model import LinearRegression
X = df.iloc[:, 1].values.reshape(-1, 1)  # iloc[:, 1] is the column of X
Y = df.iloc[:, 4].values.reshape(-1, 1)  # df.iloc[:, 4] is the column of Y
linear_regressor = LinearRegression()
linear_regressor.fit(X, Y)
Y_pred = linear_regressor.predict(X)

plt.scatter(X, Y)
plt.plot(X, Y_pred, color='red')
plt.show()

【讨论】:

以上是关于我可以使用带有熊猫数据框的散点图绘制回归线并显示参数吗?的主要内容,如果未能解决你的问题,请参考以下文章

R绘制散点图以及带圈定的散点图(Scatterplot With Encircling)

Python数据可视化之绘制带有最佳拟合线的散点图(图文并茂版!!!)

数据可视化实例: 带线性回归最佳拟合线的散点图(matplotlib,pandas)

数据可视化实例: 带线性回归最佳拟合线的散点图(matplotlib,pandas)

数据库中jfreechart中的散点图

使用 NaN 绘制/创建数据集的散点图