python回归分析_python回归分析绘图

388df89a3ba9c509804d582122306a4b.png

这一节学一下回归分析的绘图方法。

回归分析就是一个值随另一个值变化,其中最符合其变化规律的方程为回归方程,这一节先学一次方程的绘制。

首先,必要的库导入一大堆。

import numpy as np
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt

然后设定一下基本参数,从seaborn库中下载tips的数据集。

sns.set(color_codes=True)
np.random.seed(sum(map(ord,'regression')))
tips = sns.load_dataset('tips')
tips.head()

c44e7d973e1a6990abe21db06308b3d3.png

共七个字段,消费总额、消费金额、性别、是否抽烟、星期几、早餐午餐还是晚餐、几个人。

下边开始绘制各个变量之间的回归图形。

绘制图形有两种方法:regplot、lmpolt,其中lmpolt可以传递进去更多参数,绘制更复杂图形,这里先大概展示一下,后期具体用到再细化。

一、散点图

首先看一下消费总额和小费的关系。

sns.regplot(x='total_bill',y='tip',data = tips)

1c50d04aa3a4bac71b58936ad708056e.png
回归的线性方程就是图中蓝色线条。

lmplot绘制的图形是一样的。

sns.lmplot(x='total_bill',y='tip',data = tips)

4afa04a855d3f7ada73593ebddaec22b.png

其他参数的回归图形参考着画就行。

sns.regplot(x='size',y='tip',data=tips)

de0653e6528e0dca1dcc2886e7e6017b.png
吃饭人数和小费的回归图形。

吃饭人数为离散型数据,就不太适合使用散点图做回归图形了。

这是需要将吃饭的人数图形增加一个偏移,使数据分散开。

sns.stripplot(x = 'size',y='total_bill',data = tips,jitter=True)

当jitter=True时,图像的点会出现轻微偏移。这样看起来就更清晰一些。

72929fee53884624611c834bc76c52af.png

还可以表现的更清晰一些,使点和点之间更加分散,使用swarmplot方法。

sns.swarmplot(x='size',y='total_bill',data=tips)

0ec2c242d8e343dec0bbc72d963a3e3e.png

还可以增加更多参数,已完善细节,比如区分性别,同样hue参数可以传递进去日期等。。

sns.swarmplot(x='size',y='total_bill',data=tips,hue='sex')

cc7dc6f4a8ed1ad9d22fd2b8f59fe94e.png

二、箱型图

当数据中出现过大或者过小值时,对数据的某一些值会产生一定影响,这是可以使用箱型图先大致了解一下数据分布情况和离群值的数量、数值信息。

sns.boxplot(x='day',y='total_bill',data=tips,hue='time')

5dd2c75cd14715ed72bb6237fd2c393b.png

三、小提琴图

再展示一下小提琴图。

sns.violinplot(x='sex',y='total_bill',hue='time',data=tips)

d3b24da6fa71490eca5e94904f408296.png

当传递进去split参数为True是,会将对比数据放在同一小提琴两侧,使对比更加明了。

sns.violinplot(x='sex',y='total_bill',hue='time',data=tips,split=True)

d1c8aaa9db4d61015d08822d8c82728d.png

还可以在一张图张用不同方式进行展示。

下边图同时展示散点图和小提琴图,alpha参数指定透明度,在0-1之间选择,越大越透明。

sns.swarmplot(x='day',y='total_bill',data=tips,color='white',alpha=.7)
sns.violinplot(x='day',y='total_bill',data=tips)

b0a8df5eabc74b7e054ff062ef662dde.png

下边来看一下泰坦尼克数据集的情况。

生还率和船舱等级、性别的关系。首先柱形图。

sns.barplot(x='Sex',y='Survived',hue='Pclass',data=titanic)

0b262beac62bcfb72b71f32970c49bd7.png

然后折线图。

sns.pointplot(x='Sex',y='Survived',hue='Pclass',data=titanic)

4332dc551996401d803a01352e8da8b1.png

不同仓位的生还率.

sns.pointplot(x='Pclass',y='Survived',hue='Sex',data=titanic)

bc92a656e3b2394d89ed1f6244f915ef.png

最后来一个多功能的方法factorplot,先展示一下

sns.factorplot(x='Pclass',y='Age',data=titanic,hue = 'Sex')

bc92a656e3b2394d89ed1f6244f915ef.png

不指定参数时,默认为折线图。

可以指定为柱状图。

sns.factorplot(x='Pclass',y='Age',data=titanic,hue = 'Sex',kind = 'bar')

2073f16082964ecc5fb6fe18e635f95a.png

散点图:

sns.factorplot(x='Pclass',y='Age',data=titanic,hue = 'Sex',kind = 'swarm')

bbfee3bda6283612078cf22483c71982.png

最后增加上factorplot函数的参数;

seaborn.factorplot(x=None, y=None, hue=None, data=None, row=None, col=None, col_wrap=None, estimator=<function mean>, ci=95, n_boot=1000, units=None, order=None, hue_order=None, row_order=None, col_order=None, kind='point', size=4, aspect=1, orient=None, color=None, palette=None, legend=True, legend_out=True, sharex=True, sharey=True, margin_titles=False, facet_kws=None, **kwargs)

Parameters:

  • x,y,hue 数据集变量 变量名
  • date 数据集 数据集名
  • row,col 更多分类变量进行平铺显示 变量名
  • col_wrap 每行的最高平铺数 整数
  • estimator 在每个分类中进行矢量到标量的映射 矢量
  • ci 置信区间 浮点数或None
  • n_boot 计算置信区间时使用的引导迭代次数 整数
  • units 采样单元的标识符,用于执行多级引导和重复测量设计 数据变量或向量数据
  • order, hue_order 对应排序列表 字符串列表
  • row_order, col_order 对应排序列表 字符串列表
  • kind : 可选:point 默认, bar 柱形图, count 频次, box 箱体, violin 提琴, strip 散点,swarm 分散点(具体图形参考文章前部的分类介绍)
  • size 每个面的高度(英寸) 标量
  • aspect 纵横比 标量
  • orient 方向 "v"/"h"
  • color 颜色 matplotlib颜色
  • palette 调色板 seaborn颜色色板或字典
  • legend hue的信息面板 True/False
  • legend_out 是否扩展图形,并将信息框绘制在中心右边 True/False
  • share{x,y} 共享轴线 True/False
  • facet_kws FacetGrid的其他参数 字典
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值