Python统计分析可视化库——seaborn

Visualization of seaborn

  seaborn[1]是一个建立在matplot之上,可用于制作丰富和非常具有吸引力统计图形的Python库。Seaborn库旨在将可视化作为探索和理解数据的核心部分,有助于帮人们更近距离了解所研究的数据集。无论是在kaggle官网各项算法比赛中,还是互联网公司的实际业务数据挖掘场景中,都有它的身影。

   在本次介绍的这个项目中,我们将利用seaborn库对数据集进行分析,分别展示不同类型的统计图形。

首先,我们将导入可视化所需的所有必要包,我们将使用到的几个包:

  • Numpy
  • pandas
  • matplotlib
  • seaborn
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
%matplotlib inline

   本次使用到的数据集是比较有名的tips(小费)数据集[2]。小费数据集,是一个餐厅侍者收集的关于小费的数据,其中包含了七个变量,包括总费用、付小费的金额、付款者性别、是否吸烟、日期、日间、顾客人数。通过数据分析和建模,可帮助餐厅侍者预测来餐厅就餐的顾客是否会会支付小费。知识改变命运啊~
   让我们先导入tips数据集:

import matplotlib.pyplot as plt
import numpy as np
% %matplotlib inline
import seaborn as sns
tips = pd.read_csv('../input/tips.csv')

让我们看看数据集前面几行,看看数据集究竟长什么样。

tips.head()

这里写图片描述

dist plot图

sns.distplot(tips['total_bill'])

这里写图片描述

sns.distplot(tips['total_bill'],kde = False)

这里写图片描述
看图说话:上图显示,顾客在餐厅的消费总金额主要是在5-35的范围内分布的。

count plot图

sns.countplot(x = 'smoker',  data = tips)

这里写图片描述
看图说话:上图显示,来餐厅就餐的顾客,不抽烟者比会抽烟者多

sns.countplot(x = 'time',  data = tips)

这里写图片描述
看图说话:上图显示,顾客来餐厅就餐,主要是来晚饭多一些,来吃午餐的总次数更少一些。

sns.countplot(x = 'size',  data = tips)

这里写图片描述
看图说话:上图显示,2个人来餐厅就餐的总次数多一些。

sns.countplot(x = 'day',  data = tips)

这里写图片描述
看图说话:上图显示,顾客主要是周四、周五、周六来餐厅就餐。

joint plot图

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

这里写图片描述
看图说话:上图显示,顾客主要消费水平在10-30远之间,而此时,对应给侍者小费的钱在1-5元之间。

sns.jointplot(x = 'total_bill', y = 'tip', data = tips ,kind = 'hex')

这里写图片描述
另一种清晰地可视化视图,颜色的深度代表频次。

sns.jointplot(x = 'total_bill', y = 'tip', data = tips ,kind = 'reg')

这里写图片描述
看图说话:通过做一条简单的回归线,它表明了小费的金额是随着总账单金额的增加而增加的。

sns.jointplot(x = 'total_bill', y = 'tip', data = tips ,kind = 'kde')

这里写图片描述
另一种可视化统计图:某个区域越暗,表明这个区域对应的频次越多。

pair plot图

sns.pairplot(tips)

这里写图片描述
看图说话:这些图展现了数据集中消费总额、小费金额以及顾客数量三个特征(变量)之间的联系。

sns.pairplot(tips ,hue ='sex', markers=["o", "s"])

这里写图片描述
在上述基础上,我们再使用两种不同的颜色用于区分性别。

rug plot图

sns.rugplot(tips['total_bill'])

这里写图片描述
看图说话:上图呈现的是,顾客就餐消费总额在各个值上的边缘分布。

kde plot图

sns.kdeplot(tips['total_bill'], shade=True)

这里写图片描述
看图说话:KDE代表内核密度估计,它也显示了各个消费总金额数值的统计分布。

bar plot图

sns.barplot(x = 'sex', y ='total_bill', data = tips)

这里写图片描述
看图说话:就餐时消费的账单,男性买单的次数会比由女性买单的次数多一些。

box plot图

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

这里写图片描述
看图说话:上图显示大部分账单是在周六和周日支付的。

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

这里写图片描述
看图说话:在上面的图表中你可以看到,在周六时,女性买单的次数会比男性多。(难道是因为买买买,男性付了好多钱,女性为了弥补男性的心里落差,然后请吃饭?哈哈)

violin plot

sns.violinplot(x = 'day', y= 'total_bill', data = tips)

这里写图片描述
看图说话:voilin plot和box plot很相似,但它结合了box plot图和密度痕迹。

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

这里写图片描述
看图说话:增加了性别的区分

strip plot图

sns.stripplot(x = 'day', y = 'total_bill', data = tips)

这里写图片描述
看图说话:这幅图呈现的是周四、周五、周六和周日这四天,顾客消费总额的散点图。

sns.stripplot(x = 'day', y = 'total_bill', data = tips, jitter= True,hue = 'sex', dodge = True)

这里写图片描述
看图说话:和上图一样,只不过对性别进行了区别。

swarm plot图

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

这里写图片描述
看图说话:Swarn plot和stripplot比较类似,但Swarn plot的不同之处在于它不会重叠数据点。

factor plot图

sns.factorplot(x = 'day', y = 'total_bill', kind = 'box', data = tips)

这里写图片描述
看图说话:在factorplot图中,你可以给出任何你需要显示的图形。

heat map图

sns.heatmap(tips.corr())

这里写图片描述
看图说话:热力图可用来显示两变量之间的相关性,在这里两变量间对应的矩形框的颜色越浅,代表两者之间越具有相关性。

cluster map图

sns.clustermap(tips.corr())

这里写图片描述
看图说话:它显示了分层的集群热图,这个有点复杂了。

pair grid图

g = sns.PairGrid(tips)
g.map_diag(sns.distplot)
g.map_upper(plt.scatter)
g.map_lower(sns.kdeplot)

这里写图片描述
看图说话:这个厉害了。在pair grid图中,你可以根据自己需求,在这里呈现上述介绍的各种类型的图形。

参考链接

[1]seaborn官网

http://seaborn.pydata.org/#

[2]tips数据集

链接:https://pan.baidu.com/s/1l-Q1wW6ByLewzmuzBswZJA 密码:y9ck
  • 23
    点赞
  • 118
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值