Seaborn入门系列(五)——lmplot 原创 why Python读财 2018-06-

2021-03-30 03:27

阅读:751

标签:reg   一个   通过   seaborn   属性   lib   wrap   com   关系   

Seaborn入门系列(五)——lmplot

技术图片

Seaborn是基于matplotlib的Python可视化库。 它提供了一个高级界面来绘制有吸引力的统计图形。Seaborn其实是在matplotlib的基础上进行了更高级的API封装,从而使得作图更加容易,不需要经过大量的调整就能使你的图变得精致。但应强调的是,应该把Seaborn视为matplotlib的补充,而不是替代物。

技术图片

注:所有代码均在IPython notebook中实现


lmplot(回归图)

lmplot是用来绘制回归图的,通过lmplot我们可以直观地总览数据的内在关系
先总览一下stripplot的API:

seaborn.lmplot(x, y, data, hue=None, col=None, row=None, palette=None, col_wrap=None, size=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, order=1, logistic=False, lowess=False, robust=False, logx=False, x_partial=None, y_partial=None, truncate=False, x_jitter=None, y_jitter=None, scatter_kws=None, line_kws=None)

可以看到lmplot的参数还是比较多的,接下来我们就挑一些常用的来讲一下,有一些参数会涉及到一些统计学的知识。
老套路,先导入相应的包:

1import seaborn as sns
2%matplotlib inline
3sns.set(font_scale=1.5,style="white")

本次试用的数据集是Seaborn内置的tips小费数据集:

1data=sns.load_dataset("tips")
2data.head(5) 

技术图片

我们先来看一下lmplot是什么样的

1sns.lmplot(x="total_bill",y="tip",
2           data=data)

技术图片

可以看到lmplot对所选数据集进行了一元线性回归,拟合出了一条最佳的直线,
接下来进入具体参数的演示。

col:根据所指定属性在列上分类
row:根据所指定属性在行上分类

1sns.lmplot(x="total_bill",y="tip",
2           data=data,row="sex",
3           col="smoker")

技术图片

结合我们的数据集,看上图的横纵坐标就可以明白这两个参数的用法

col_wrap:指定每行的列数,最多等于col参数所对应的不同类别的数量

1sns.lmplot(x="total_bill",y="tip",
2           data=data,col="day",
3           col_wrap=4) 

技术图片

1sns.lmplot(x="total_bill",y="tip",
2           data=data,col="day",
3           col_wrap=2) 

技术图片

aspect:控制图的长宽比

1sns.lmplot(x="total_bill",y="tip",
2           data=data,aspect=1)
   #长度比宽度等于一比一,即正方形

技术图片

1sns.lmplot(x="total_bill",y="tip",
2           data=data,aspect=1.5)  
3#长度比宽度等于1:1.5,可以看到横轴更长一点

技术图片
sharex:共享x轴刻度(默认为True)
sharey:共享y轴刻度(默认为True)

1sns.lmplot(x="total_bill",y="tip",
2           data=data,row="sex",
3           col="smoker",sharex=False) 
4#可以看到设置为False时,各个子图的x轴的
5#坐标刻度是不一样的

技术图片

hue:用于分类

1sns.lmplot(x="total_bill",y="tip",
2           data=data,hue="sex",
3           palette="husl") 

技术图片

ci:控制回归的置信区间(有学过统计学的同学们应该都是知道滴)

1sns.lmplot(x="total_bill",y="tip",
2           data=data,ci=0.95)
3#采用α=0.05的置信区间

技术图片

x_jitter:给x轴随机增加噪音点
y_jitter:给y轴随机增加噪音点
设置这两个参数不影响最后的回归直线

1sns.lmplot(x="size",y="tip",
2       data=data,x_jitter=False) 

技术图片

1sns.lmplot(x="size",y="tip",
2        data=data,x_jitter=True) 
   #可以看到刚才的一列一列的数据点被随机
   #打乱了,但不会影响到最后的回归直线

技术图片
order:控制进行回归的幂次(一次以上即是多项式回归)

1sns.lmplot(x="total_bill",y="tip",
2         data=data,order=1)
  #一元线性回归

技术图片

1sns.lmplot(x="total_bill",y="tip",
2          data=data,order=2)
3#次数最高为2

技术图片

1sns.lmplot(x="total_bill",y="tip",
2          data=data,order=3)
3#次数最高为3

技术图片
还有一些参数涉及到了更深入的统计学知识,在这里就不一一介绍了,有兴趣的可以自行查看官方文档!今天的演示就到此为止!

猜您喜欢
往期精选▼

  1. Seaborn入门系列(一)——kdeplot和distplot
  2. Seaborn入门系列(二)——barplot&countplot&pointplot
  3. Seaborn入门系列(三)——boxplot和violinplot
  4. Seaborn入门系列(四)——stripplot和swarmplot

关注我们
技术图片

1529321439513643.jpg
公众号ID:易执
一个记录成长的公众号

Seaborn入门系列(五)——lmplot 原创 why Python读财 2018-06-

标签:reg   一个   通过   seaborn   属性   lib   wrap   com   关系   

原文地址:https://blog.51cto.com/14915204/2525946


评论


亲,登录后才可以留言!