本文详细介绍Seaborn可视化线型回归(linear regression)曲线

目录

1、绘图数据准备
2、seaborn.regplotregplot默认参数线型回归图分别设置点和拟合线属性置信区间(confidence interval)设置拟合线延伸与坐标轴相交 拟合离散变量曲线多项式回归( polynomial regression)拟合曲线3、seaborn.lmplot按变量分类拟合回归线散点marker设置散点调色盘拟合线属性设置绘制分面图

1、绘图数据准备

依旧使用鸢尾花iris数据集,详细介绍见之前文章。

#导入本帖要用到的库,声明如下:
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
import palettable
from pandas import Series,DataFrame
from sklearn import datasets
import seaborn as sns
import palettable
#导入鸢尾花iris数据集(方法一)
#该方法更有助于理解数据集
iris=datasets.load_iris()
x, y =iris.data,iris.target
y_1 = np.array(['setosa' if i==0 else 'versicolor' if i==1 else 'virginica' for i in y])
pd_iris = pd.DataFrame(np.hstack((x, y_1.reshape(150,1))),columns=['sepal length(cm)','sepal width(cm)','petal length(cm)','petal width(cm)','class'])#astype修改pd_iris中数据类型object为float64
pd_iris['sepal length(cm)']=pd_iris['sepal length(cm)'].astype('float64')
pd_iris['sepal width(cm)']=pd_iris['sepal width(cm)'].astype('float64')
pd_iris['petal length(cm)']=pd_iris['petal length(cm)'].astype('float64')
pd_iris['petal width(cm)']=pd_iris['petal width(cm)'].astype('float64')#导入鸢尾花iris数据集(方法二)
#该方法有时候会卡巴斯基,所以弃而不用
#import seaborn as sns
#iris_sns = sns.load_dataset("iris")

数据集简单查看


2、seaborn.regplot

seaborn.regplot(x, y, data=None, x_estimator=None, x_bins=None, x_ci='ci', scatter=True, fit_reg=True, ci=95, n_boot=1000, units=None, seed=None, order=1, logistic=False, lowess=False, robust=False, logx=False, x_partial=None, y_partial=None, truncate=True, dropna=True, x_jitter=None, y_jitter=None, label=None, color=None, marker='o', scatter_kws=None, line_kws=None, ax=None)

  • regplot默认参数线型回归图

plt.figure(dpi=100)
sns.set(style="whitegrid",font_scale=1.2)#设置主题,文本大小
g=sns.regplot(x='sepal length(cm)', y='sepal width(cm)', data=pd_iris,color='#000000',#设置marker及线的颜色marker='*',#设置marker形状)

  • 分别设置点和拟合线属性

plt.figure(dpi=100)
sns.set(style="whitegrid",font_scale=1.2)
g=sns.regplot(x='sepal length(cm)', y='sepal width(cm)', data=pd_iris,color='#000000',marker='*',scatter_kws={'s': 60,'color':'g',},#设置散点属性,参考plt.scatterline_kws={'linestyle':'--','color':'r'}#设置线属性,参考 plt.plot

  • 置信区间(confidence interval)设置

注意拟合线周围阴影面积变化

plt.figure(dpi=100)
sns.set(style="whitegrid",font_scale=1.2)
g=sns.regplot(x='sepal length(cm)', y='sepal width(cm)', data=pd_iris,color='#000000',marker='*',ci=60,#置信区间设置,默认为95%置信区间,越大线周围阴影部分面积越大)

  • 拟合线延伸与坐标轴相交

# extend the regression line to the axis limits
plt.figure(dpi=100)
sns.set(style="whitegrid",font_scale=1.2)
g=sns.regplot(x='sepal length(cm)', y='sepal width(cm)', data=pd_iris,color='#000000',marker='*',truncate=False,#让拟合线与轴相交)

  • 拟合离散变量曲线

plt.figure(dpi=100)
sns.set(style="whitegrid",font_scale=1.2)
x_discrete=[0 if i=='setosa' else 1 if i=='versicolor' else 2 for i in pd_iris['class']]#
g=sns.regplot(x=x_discrete, y='sepal width(cm)', data=pd_iris,#x此时为离散变量color='#000000',marker='*',)

  • 多项式回归( polynomial regression)拟合曲线

plt.figure(dpi=110)
sns.set(style="whitegrid",font_scale=1.2)
g=sns.regplot(x='sepal length(cm)', y='sepal width(cm)', data=pd_iris,marker='*',order=4,#默认为1,越大越弯曲scatter_kws={'s': 60,'color':'#016392',},#设置散点属性,参考plt.scatterline_kws={'linestyle':'--','color':'#c72e29'}#设置线属性,参考 plt.plot             )


3、seaborn.lmplot

seaborn.lmplot(x, y, data, hue=None, col=None, row=None, palette=None, col_wrap=None, height=5, aspect=1, markers='o', sharex=True, sharey=True, hue_order=None, col_order=None, row_order=None, legend=True, legend_out=True, x_estimator=None, x_bins=None, x_ci='ci', scatter=True, fit_reg=True, ci=95, n_boot=1000, units=None, seed=None, order=1, logistic=False, lowess=False, robust=False, logx=False, x_partial=None, y_partial=None, truncate=True, x_jitter=None, y_jitter=None, scatter_kws=None, line_kws=None, size=None)seaborn.lmplot结合seaborn.regplot()和FacetGrid,比seaborn.regplot()更灵活,可绘制更个性化的图形。

  • 按变量分类拟合回归线

plt.figure(dpi=100)
sns.set(style="whitegrid",font_scale=1.2)
g=sns.lmplot(x='sepal length(cm)', y='sepal width(cm)', data=pd_iris,hue='class',)
g.fig.set_size_inches(10,8)

  • 散点marker设置

plt.figure(dpi=100)
sns.set(style="whitegrid",font_scale=1.2)
g=sns.lmplot(x='sepal length(cm)', y='sepal width(cm)', data=pd_iris,hue='class',markers=['+','^','o'],   #设置散点marker          )
g.fig.set_size_inches(10,8)

  • 散点调色盘

plt.figure(dpi=100)
sns.set(style="whitegrid",font_scale=1.2)
g=sns.lmplot(x='sepal length(cm)', y='sepal width(cm)', data=pd_iris,hue='class',markers=['+','^','*'],scatter_kws={'s':180},palette=["#01a2d9", "#31A354", "#c72e29"],#调色盘)
g.fig.set_size_inches(10,8)

  • 拟合线属性设置

plt.figure(dpi=100)
sns.set(style="whitegrid",font_scale=1.2)
g=sns.lmplot(x='sepal length(cm)', y='sepal width(cm)', data=pd_iris,hue='class',markers=['+','^','*'],scatter_kws={'s':180},line_kws={'linestyle':'--'},#拟合线属性设置palette=["#01a2d9", "#31A354", "#c72e29"],)
g.fig.set_size_inches(10,8)

  • 绘制分面图

plt.figure(dpi=100)
sns.set(style="whitegrid",font_scale=1.2)
g=sns.lmplot(x='sepal length(cm)', y='sepal width(cm)', data=pd_iris,col='class',#按class绘制分面图markers='*',scatter_kws={'s':150,'color':'#01a2d9'},line_kws={'linestyle':'--','color':'#c72e29'},#直线属性设置)
g.fig.set_size_inches(10,8)

-END-

往期精彩回顾适合初学者入门人工智能的路线及资料下载(图文+视频)机器学习入门系列下载中国大学慕课《机器学习》(黄海广主讲)机器学习及深度学习笔记等资料打印《统计学习方法》的代码复现专辑机器学习交流qq群955171419,加入微信群请扫码:

【Python】Python Seaborn搞定线型回归图曲线相关推荐

  1. python从视频中提取音频_提取视频中的音频——python三行程序搞定!

    原标题:提取视频中的音频--python三行程序搞定! 写在开头 身处数据爆炸增长的时代,各种各样的数据都飞速增长,视频数据也不例外.我们可以使用 python 来提取视频中的音频,而这仅仅需要安装一 ...

  2. python如何高效使用excel_高效办公必备:你加班做的 Excel数据汇总,我用Python一分钟搞定!...

    原标题:高效办公必备:你加班做的 Excel数据汇总,我用Python一分钟搞定! 广东优就业 IT互联网/资讯热点/技能干货 点左上方蓝字关注小U有礼物送~ 现如今无论是工作汇报.产品设计.后台设计 ...

  3. python查看微信撤回消息_想查看微信好友撤回的消息?Python帮你搞定

    要说微信最让人恶心的发明,消息撤回绝对能上榜. 比如你现在正和女朋友用微信聊着天,或者跟自己喜欢的女孩子聊着天,一个不留神,你没注意到对方发的消息就被她及时撤回了,这时你很好奇,好奇她到底发了什么?于 ...

  4. python做excel麻烦_高效办公必备:别人通宵做的 Excel,我用Python 半小时搞定!

    原标题:高效办公必备:别人通宵做的 Excel,我用Python 半小时搞定! 最近经常听到周围的人抱怨:"工作忙,在加班--" 不知不觉,当代职场人早就被"996&qu ...

  5. linux可以怎么玩(以阿里云Ubuntu服务器为例)(三)——Python零代码搞定个人云盘

    笔者之前只搭建FTP服务器,用来传文件当"网盘",有点儿low,可是别的不会呀,今儿逛github看到这个updog库,几行代码搞定个人云盘,心动不如行动,走起!当然,你也可以在学 ...

  6. python语音转文字源码_【python3】Python十行代码搞定文字转语音

    都是copy的百度SDK文档,简单说说怎么用. 1.没安装Python的参见此文:Python学习笔记系列 1 --安装调试Python开发软件 2.win+r输入cmd打开命令行,输入:pip in ...

  7. openpyxl写入一行数据_老板让我从几百个Excel中查找数据,我用Python一分钟搞定!...

    以下文章来源: 早起Python 作者:陈熹 大家好,又到了Python办公自动化系列. 今天分享一个真实的办公自动化需求,大家一定要仔细阅读需求说明,在理解需求之后即可体会Python的强大! 一. ...

  8. python哪个文字转语音好用_【python3】Python十行代码搞定文字转语音

    都是copy的百度SDK文档,简单说说怎么用. 1.没安装Python的参见此文:Python学习笔记系列 1 --安装调试Python开发软件 2.win+r输入cmd打开命令行,输入:pip in ...

  9. AI 换脸?除了 ZAO,用 Python 一样轻松搞定

    最近两天一款名为 「ZAO」 的 App 刷爆了朋友圈,它的主打功能是 AI 换脸,宣称「只需一张照片,就能出演天下好戏」 : 现实中不能实现当明星的梦,在这个 App 里你可以,想演谁演谁.新鲜.好 ...

最新文章

  1. 没有对“C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/Temporary ASP.NET Files”的写访问权限...
  2. 《黑马程序员》认识OC的第一个程序(Objective-c)
  3. GitHub添加SSH keys报错Key is invalid. It must begin with 'ssh-ed25519', 'ssh-rsa', 'ssh-dss', 'ecdsa-sha
  4. 使用python实现多维数据降维操作
  5. javafx 图标_JavaFX技巧32:需要图标吗? 使用Ikonli!
  6. 【NOI OpenJudge】【1.3】编程基础之算术表达式与顺序执行
  7. 【论文解读】LGN: 基于词典构建的中文NER图神经网络
  8. Ubuntu 18.04 安装 NVIDIA+ CDUDA +CUDNN
  9. LTE网络架构 学习整理
  10. word2007制作目录
  11. 软件研发模型和软件测试模型
  12. 【python学习笔记】python运算符以及简单语句
  13. Adobe全家桶系列百度云(含最新软件安装包+安装教程)
  14. Combining Character
  15. 漫画 | 打死我也不学编译了!
  16. 实验室真的需要智能LIMS系统吗?
  17. 机器翻译 MXNet(使用含注意力机制的编码器—解码器,即 Encoder编码器-Decoder解码器框架 + Attention注意力机制)
  18. python 四则运算
  19. SAP FI/CO 顾问面试问题1(转帖)
  20. 【渝粤教育】国家开放大学2018年春季 0701-21T公共政策学 参考试题

热门文章

  1. 外包公司,真的是互联网“二等公民”吗?
  2. opencv去除印章痕迹
  3. php 微信公众号开发-自动回复之标梵分享
  4. 百度Apollo计划参考硬件
  5. Oracle 查询分析器的数据库查询工具。
  6. 云鸽笔记|技术复盘与总结
  7. android intent 传递int参数,intent的getIntExtra步骤得不到值
  8. ARM立即寻址中有效立即数的计算
  9. 关于自制utau软件,widegt,动态更改控件长度等等经验
  10. 【加解密篇】Passware Encryption Analyzer快速检测加密文件软件