脚本之家,脚本语言编程技术及教程分享平台!
分类导航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服务器之家 - 脚本之家 - Python - Python可视化学习之seaborn绘制线型回归曲线

Python可视化学习之seaborn绘制线型回归曲线

2022-10-13 11:57qq_21478261 Python

这篇文章主要为大家介绍了如何利用seaborn绘制变量之间线型回归(linear regression)曲线,2文中涉及如下两个重要函数:seaborn.regplot和seaborn.lmplot,感兴趣的小伙伴可以跟随小编一起学习一下

本文速览

Python可视化学习之seaborn绘制线型回归曲线

Python可视化学习之seaborn绘制线型回归曲线

Python可视化学习之seaborn绘制线型回归曲线

 

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

数据集简单查看

Python可视化学习之seaborn绘制线型回归曲线

 

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形状
           )

Python可视化学习之seaborn绘制线型回归曲线

分别设置点和拟合线属性

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.scatter
            line_kws={'linestyle':'--','color':'r'}#设置线属性,参考 plt.plot          

Python可视化学习之seaborn绘制线型回归曲线

置信区间(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%置信区间,越大线周围阴影部分面积越大
           )

Python可视化学习之seaborn绘制线型回归曲线

拟合线延伸与坐标轴相交

# 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,#让拟合线与轴相交
           )

Python可视化学习之seaborn绘制线型回归曲线

拟合离散变量曲线

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='*',
           )

Python可视化学习之seaborn绘制线型回归曲线

多项式回归( 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.scatter
           line_kws={'linestyle':'--','color':'#c72e29'}#设置线属性,参考 plt.plot             
           
           )

Python可视化学习之seaborn绘制线型回归曲线

 

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)

Python可视化学习之seaborn绘制线型回归曲线

散点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)

Python可视化学习之seaborn绘制线型回归曲线

散点调色盘

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)

Python可视化学习之seaborn绘制线型回归曲线

拟合线属性设置

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)

Python可视化学习之seaborn绘制线型回归曲线

绘制分面图

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)

Python可视化学习之seaborn绘制线型回归曲线

以上就是Python可视化学习之seaborn绘制线型回归曲线的详细内容,更多关于Python seaborn线型回归曲线的资料请关注服务器之家其它相关文章!

原文链接:https://blog.csdn.net/qq_21478261/article/details/108174767

延伸 · 阅读

精彩推荐
  • PythonDjango使用django-simple-captcha做验证码的实现示例

    Django使用django-simple-captcha做验证码的实现示例

    这篇文章主要介绍了Django使用django-simple-captcha做验证码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友...

    成庶9952021-08-23
  • Python常见的在Python中实现单例模式的三种方法

    常见的在Python中实现单例模式的三种方法

    这篇文章主要介绍了常见的在Python中实现单例模式的三种方法,单例模式在各个编程语言的学习中都是需要掌握的基础知识,需要的朋友可以参考下 ...

    吴文苑3202020-06-02
  • PythonPython使用arrow库优雅地处理时间数据详解

    Python使用arrow库优雅地处理时间数据详解

    虽然Python提供了多个内置模块用于操作日期时间,但有的时候并不能满足我们的需求,所以下面这篇文章主要给大家介绍了关于Python使用arrow库如何优雅地...

    cicaday2462020-12-11
  • Python用Python编写一个简单的Lisp解释器的教程

    用Python编写一个简单的Lisp解释器的教程

    这篇文章主要介绍了用Python编写一个简单的Lisp解释器的教程,Lisp是一种源码简单的函数式编程语言,本文主要介绍对其中的一个子集Scheme的解释器开发,需要...

    Peter Norvig2312020-05-29
  • Pythondjango模板语法学习之include示例详解

    django模板语法学习之include示例详解

    写过 Web 程序的都对 include 包含文件很熟悉,那么在 Django,include 又是怎么一个机制呢?下面这篇文章主要给大家介绍了关于django模板语法学习之include的相...

    听风。6322020-12-25
  • Python一文读懂python Scrapy爬虫框架

    一文读懂python Scrapy爬虫框架

    这篇文章主要介绍了一文读懂python Scrapy爬虫框架的相关知识,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以...

    曾亲桂林5502021-09-09
  • PythonPandas之ReIndex重新索引的实现

    Pandas之ReIndex重新索引的实现

    这篇文章主要介绍了Pandas之ReIndex重新索引的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面...

    yungeisme8432021-07-21
  • Pythonpytest fixtures装饰器的使用和如何控制用例的执行顺序

    pytest fixtures装饰器的使用和如何控制用例的执行顺序

    这篇文章主要介绍了pytest fixtures装饰器的使用和如何控制用例的执行顺序,帮助大家更好的理解和使用pytest测试框架,感兴趣的朋友可以了解下...

    剑尊8782021-08-30