Visualization of seaborn
seaborn[1]是一个创建在matplot之上,可用于制做丰富和很是具备吸引力统计图形的Python库。Seaborn库旨在将可视化做为探索和理解数据的核心部分,有助于帮人们更近距离了解所研究的数据集。不管是在kaggle官网各项算法比赛中,仍是互联网公司的实际业务数据挖掘场景中,都有它的身影。算法
在本次介绍的这个项目中,咱们将利用seaborn库对数据集进行分析,分别展现不一样类型的统计图形。spa
首先,咱们将导入可视化所需的全部必要包,咱们将使用到的几个包:3d
Numpy
pandas
matplotlib
seaborn
code
import numpy as np import pandas as pd import matplotlib.pyplot as plt import seaborn as sns tips = pd.read_csv('tips.csv') tips.head()
各属性相关性blog
# 相关性 tips.corr()
Out[2]: total_bill tip size total_bill 1.000000 0.675734 0.598315 tip 0.675734 1.000000 0.489299 size 0.598315 0.489299 1.000000
#相关性图 很壮观 sns.pairplot(tips)
看图说话:这些图展示了数据集中消费总额、小费金额以及顾客数量三个特征(变量)之间的联系。图片
#相关性图,和某一列的关系 sns.pairplot(tips ,hue ='sex', markers=["o", "s"])
# 相关性热力图 sns.heatmap(tips.corr())
看图说话:热力图可用来显示两变量之间的相关性,在这里两变量间对应的矩形框的颜色越浅,表明二者之间越具备相关性。ip
# 分层相关性热力图 sns.clustermap(tips.corr())
g = sns.PairGrid(tips)
g.map_diag(sns.distplot)
g.map_upper(plt.scatter)
g.map_lower(sns.kdeplot)
看图说话:这个厉害了。在pair grid图中,你能够根据本身需求,在这里呈现上述介绍的各类类型的图形。pandas
单个属性的分布it
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 = 'size', data = tips)
看图说话:上图显示,2我的来餐厅就餐的总次数多一些。
rug plot图
sns.rugplot(tips['total_bill'])
看图说话:上图呈现的是,顾客就餐消费总额在各个值上的边缘分布。
kde plot图
sns.kdeplot(tips['total_bill'], shade=True)
看图说话:KDE表明内核密度估计,它也显示了各个消费总金额数值的统计分布。
两两属性的相关性图
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')
另外一种可视化统计图:某个区域越暗,代表这个区域对应的频次越多。
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)
看图说话:这幅图呈现的是周4、周5、周六和周日这四天,顾客消费总额的散点图。
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图中,你能够给出任何你须要显示的图形。