Seaborn-线性回归拟合
点击上方【AI派】,加星标,每周都送书
原创作者:牵引小哥
微信公众号:牵引小哥讲Python
注:转载或复制请注明出处——牵引小哥
Seaborn
可以使用一行代码绘制数据集的线性回归拟合图表。本期小哥以Seaborn
中的Tips
数据集讲解如何绘制。Seaborn
中可使用lmplot()
和regplot()
两种函数绘制线性回归拟合图表。其中,lmplot()
是regplot()
和FacetGrid
的结合体。所以掌握了regplot()
的用法就掌握了另外一种。为了方便展示,本次分析小哥在Jupyter Notebook中进行。
参考链接:
http://seaborn.pydata.org/generated/seaborn.lmplot.html#seaborn.lmplot
http://seaborn.pydata.org/generated/seaborn.regplot.html#seaborn.regplot
1. Tips数据集
首先导入数据集,观察一下数据集的基本情况。
import seaborn as sns
sns.set(font='SimHei', font_scale=1.3) #设置字体大小
sns.set_style("whitegrid") # 设置绘图style
# 获取数据集
df = sns.load_dataset("tips")
# 查看数据前几行
df.head()
2. regplot()
绘制线性回归拟合
# 绘制total_bill和tip的拟合图表:
sns.regplot(x="total_bill", y="tip", data=df)
从结果我们可以看到,regplot()
的拟合带有置信度(默认95%)。可以使用ci
进行调整,调整范围为:[0, 100]整数 or None。
# 关闭置信区间
sns.regplot(x="total_bill", y="tip", ci=None, data=df)
# 绘制多个变量的拟合,通过 hue 映射不同的颜色
sns.lmplot(x="total_bill", y="tip", hue="smoker", data=df)
# 绘制多个变量的拟合,通过 hue 映射不同的颜色。
# 定义不同的标志符号,设置调色盘为‘Set1’
sns.lmplot(x="total_bill", y="tip", hue="smoker", data=df,
markers=["o", "x"], palette="Set1")
3. lmplot()
绘制线性回归拟合
Seaborn
有一个非常强大的功能:FacetGrid
。这种功能可自动根据变量种类形成分类绘制子图映射。而lmplot()
中就包含这种功能。
首先讲解一下思路,在上一节中绘制了这样一个图表:
在这个图表中,根据顾客是否吸烟(smoker)绘制了两条回归曲线。那么,如果想要单独绘制这两条曲线在一幅图中,并且有标记呢?这时就可以用到lmplot()
,该函数中主要使用col,row,hue
三个参数控制子图的行列和颜色映射,话不多说,直接看代码。
sns.lmplot(x="total_bill", y="tip", col="smoker", hue='smoker', markers=["o", "x"], data=df)
为了展示这种绘图方法的优越性,再以day
这一列进行分类:
# 使用 col 参数控制
sns.lmplot(x="total_bill", y="tip", hue="day", col="day", palette="Set1", data=df)
# 使用 row 参数控制
sns.lmplot(x="total_bill", y="tip", hue="day", row="day", palette="Set1", data=df)
# 绘制2x2的子图布局,使用 col_wrap 参数
sns.lmplot(x="total_bill", y="tip", hue="day",
col="day", col_wrap=2, palette="Set1", data=df)
文末福利
各位猿们,还在为记不住API发愁吗,哈哈哈,最近发现了国外大师整理了一份Python代码速查表和Pycharm快捷键sheet,火爆国外,这里分享给大家。
这个是一份Python代码速查表
下面的宝藏图片是2张(windows && Mac)高清的PyCharm快捷键一览图
怎样获取呢?可以添加我们的AI派团队的程序媛姐姐
一定要备注【高清图】哦
????????????????????
➕我们的程序媛小姐姐微信要记得备注【高清图】哦
来都来了,喜欢的话就请分享、点赞、在看三连再走吧~~~
m0_59916887: 时间序列不能打乱吗?应该可以打乱吧
kkBHlanding: 老师您好 想请教一下为什么我的浏览记录只有一条
qq_43417502: 搜不到这个公众号了,博主可以帮忙指路吗
胡子入春: 高斯回归属于哪一类?
m0_63521203: 真心感谢博主,讲的非常详细。就是win系统的python运行起来太费劲了,导入包经常报错,搞得我又重装了低版本的anaconda才运行成功。