Python数据分析-绘图-2-Seaborn进阶绘图-4-分类图

一、分类散点图

1.stripplot

函数:seaborn.stripplot

常用参数:

x,y,hue 接收data中的变量名,表示选入的绘图变量,hue传入分类变量,以对颜色分类。
data 接收DataFrame,array,list,series,表示用于绘图的数据集。
order,order_hue 接收字符串列表,指定绘图分类级别。
jitter 接收float,True或1,添加均匀随机噪声以优化图形显示。默认为True
dodge bool,表示使用分类嵌套时是否沿着分类轴分离。默认为False
orient 接收v或h,表示图形的方向。
tips=sns.load_dataset('tips')
fig,ax=plt.subplots(1,2,figsize=(8,4))
#添加随机噪声
sns.stripplot(x='day',y='total_bill',data=tips,ax=ax[0])
#不添加随机噪声
sns.stripplot(x='day',y='total_bill',data=tips,jitter=False,ax=ax[1])

Python数据分析-绘图-2-Seaborn进阶绘图-4-分类图_第1张图片

使用多分类功能:

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

 Python数据分析-绘图-2-Seaborn进阶绘图-4-分类图_第2张图片

修改dodge参数,使变量沿着分类轴而不是重叠覆盖:

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

 Python数据分析-绘图-2-Seaborn进阶绘图-4-分类图_第3张图片

2.violinplot

小提琴图是箱线图和核密度估计图的结合。与箱线图相比,它除了可以显示图形上显示的那些统计特征外,它还可以显示数据的分布。

Python数据分析-绘图-2-Seaborn进阶绘图-4-分类图_第4张图片

 函数:seaborn.violinplot

常用参数:

bw 接收“scott”“silverman”“及float,表示选入的绘图变量。默认为”scott“
cut 接收float,控制小提琴图外壳延伸超过内部极端数据点的密度,设置为0以将小提琴图范围限制在观察数据的范围内。默认为2.
scale 接收”area“”“count""width",用于调整图的宽带,默认为”area“
scale_hue

bool,当分类嵌套时,确定缩放是在主要分组变量的每个级别还是在图上的所有小提琴。默认为True。

gridsize int,表示用于核密度计算的离散网格中的点数。默认为100.
inner 接收”box",“quartile”,"point","stick",None,表示图形内部数据点的形态。默认为“box”
split bool,表示当两个类型嵌套时,是否将每个级别绘制一个小提琴,默认为False。
sns.set_style('whitegrid')
sns.violinplot(x="day",y="total_bill",data=tips)

Python数据分析-绘图-2-Seaborn进阶绘图-4-分类图_第5张图片

sns.violinplot(x="day",y="total_bill",hue="sex",data=tips)

 Python数据分析-绘图-2-Seaborn进阶绘图-4-分类图_第6张图片

传入split参数以分裂小提琴图:

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

 Python数据分析-绘图-2-Seaborn进阶绘图-4-分类图_第7张图片

调整小提琴图宽度,并改变四分位数绘制方式:

sns.violinplot(x="day",y="total_bill",hue="sex",data=tips,split=True,inner='quartile',scale='count',palette='Set2')

 Python数据分析-绘图-2-Seaborn进阶绘图-4-分类图_第8张图片

 将分类散点图和小提琴图结合:

sns.violinplot(x="day",y="total_bill",data=tips,inner=None)
sns.stripplot(x="day",y="total_bill",data=tips,color="w",alpha=0.5)

Python数据分析-绘图-2-Seaborn进阶绘图-4-分类图_第9张图片

3.boxenplot

增强箱线图通过绘制更多的分位数,提供了更多有关分布形状 的信息。避免了箱线图中对四分位数以外的信息提供很少,当数据量很大时会显示大量的极端值的缺点。

函数:seaborn.boxenplot

特殊参数:

k_depth "proportion","tukey","trustworthy",表示不同箱盒数量被拓展的比例。
scale “linear""exponential""area",表示显示箱盒宽度的方法。
fig,ax=plt.subplots(1,2,figsize=(8,4))
sns.boxplot(x=tips["total_bill"],ax=ax[0])
sns.boxenplot(x=tips["total_bill"],ax=ax[1])

Python数据分析-绘图-2-Seaborn进阶绘图-4-分类图_第10张图片

增强箱线图显示了更广的分位数信息,通过宽度显示出对应的分布,从而接纳了更多异常值信息,减少了信息损失。

fig,axes=plt.subplots(1,3,figsize=(12,4))
sns.boxenplot(x="day",y="total_bill",data=tips,k_depth="proportion",ax=axes[0])
sns.boxenplot(x="day",y="total_bill",data=tips,k_depth="tukey",ax=axes[1])
sns.boxenplot(x="day",y="total_bill",data=tips,k_depth="trustworthy",ax=axes[2])

 Python数据分析-绘图-2-Seaborn进阶绘图-4-分类图_第11张图片

4.pointplot

点图绘制点估计值和置信区间,点图用于聚集一个或多个分类变量的不同级别之间的比较。利用线倾斜程度,很好的展示一个分类变量不同级别间关系在另外分类变量的不同级别间的变化。

函数:seaborn.pointplot

sns.set_style('darkgrid')
fig,axes=plt.subplots(1,2,figsize=(8,4))
sns.pointplot(x="time",y="total_bill",data=tips,ax=axes[0])
#errwidth,capsize接收float,表示误差条帽子的厚度和宽度。
sns.pointplot(x="time",y="total_bill",data=tips,errwidth=4,capsize=0.2,ax=axes[1])

Python数据分析-绘图-2-Seaborn进阶绘图-4-分类图_第12张图片

绘制嵌套分组点图:

sns.pointplot(x="time",y="total_bill",hue="sex",data=tips,dodge=True,palette="Set1")

 Python数据分析-绘图-2-Seaborn进阶绘图-4-分类图_第13张图片

设置join参数可以取消连接两个点的线段:

sns.set_style('darkgrid')
fig,axes=plt.subplots(1,2,figsize=(8,4))
sns.pointplot(x="day",y="total_bill",data=tips,ax=axes[0])
#errwidth,capsize接收float,表示误差条帽子的厚度和宽度。
sns.pointplot(x="day",y="total_bill",data=tips,join=False,ax=axes[1])

 Python数据分析-绘图-2-Seaborn进阶绘图-4-分类图_第14张图片

将集中趋势估计方式由平均数改为中位数:

import numpy as np
sns.pointplot(x="day",y="tip",data=tips,estimator=np.median)

 Python数据分析-绘图-2-Seaborn进阶绘图-4-分类图_第15张图片

 5.countplot

计数图用于显示每个分类的观察数量。可以认为它是应用于分类变量、比较类别间计数差的直方图。

函数:seaborn.countplot

fig,axes=plt.subplots(1,2,figsize=(8,4))
sns.countplot(x="sex",data=tips,ax=axes[0])
sns.countplot(y="sex",data=tips,ax=axes[1])

Python数据分析-绘图-2-Seaborn进阶绘图-4-分类图_第16张图片

多分类嵌套的计数图:

sns.countplot(x="sex",hue="smoker",data=tips,palette="Set2")

 Python数据分析-绘图-2-Seaborn进阶绘图-4-分类图_第17张图片

6.catplot

类似于关系图中的relplot,它可以将分类图中的各函数统一访问。

函数:seaborn.catplot

常用参数:

x,y
data
row_wrap int,表示网格图的列数,默认为None。
legend_out bool,是否在中心右侧绘制图例,默认为True。
share{x,y} bool,表示是否跨行或列共享x或y轴,默认为True。
margin_titles bool,表示是否把行变量的标题绘制在最后一列的右侧,默认为False。
kind 接收"strip""swarm""box""violin""boxen""point""bar""count",选择对应绘图函数,默认为“strip".

 

sns.catplot(x="day",y="total_bill",col="time",data=tips,jitter=True)

Python数据分析-绘图-2-Seaborn进阶绘图-4-分类图_第18张图片

再多加入一个变量:

sns.catplot(x="day",y="total_bill",hue="sex",col="time",data=tips,jitter=True)

 Python数据分析-绘图-2-Seaborn进阶绘图-4-分类图_第19张图片

绘制小提琴图,并且不共享y轴:

sns.set_style("whitegrid")
sns.catplot(x="day",y="total_bill",hue="sex",col="time",data=tips,kind="violin",split="True",sharey=False)

 Python数据分析-绘图-2-Seaborn进阶绘图-4-分类图_第20张图片

 绘制增强箱线图,改变网格宽度,设置每一列只显示两个图。

sns.catplot(x="time",y="total_bill",hue="sex",col="day",data=tips,kind="boxen",col_wrap=2,margin_titles=True)

Python数据分析-绘图-2-Seaborn进阶绘图-4-分类图_第21张图片

绘制计数图,调节图像大小。

sns.catplot(x="day",hue="sex",col="time",data=tips,kind="count",height=4,aspect=1)

 Python数据分析-绘图-2-Seaborn进阶绘图-4-分类图_第22张图片

 

你可能感兴趣的:(数据分析,python,分类,数据可视化)