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])
使用多分类功能:
sns.stripplot(x='day',y='total_bill',hue='sex',data=tips)
修改dodge参数,使变量沿着分类轴而不是重叠覆盖:
sns.stripplot(x='day',y='total_bill',hue='sex',dodge=True,data=tips)
2.violinplot
小提琴图是箱线图和核密度估计图的结合。与箱线图相比,它除了可以显示图形上显示的那些统计特征外,它还可以显示数据的分布。
函数: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)
sns.violinplot(x="day",y="total_bill",hue="sex",data=tips)
传入split参数以分裂小提琴图:
sns.violinplot(x="day",y="total_bill",hue="sex",data=tips,split=True)
调整小提琴图宽度,并改变四分位数绘制方式:
sns.violinplot(x="day",y="total_bill",hue="sex",data=tips,split=True,inner='quartile',scale='count',palette='Set2')
将分类散点图和小提琴图结合:
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)
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])
增强箱线图显示了更广的分位数信息,通过宽度显示出对应的分布,从而接纳了更多异常值信息,减少了信息损失。
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])
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])
绘制嵌套分组点图:
sns.pointplot(x="time",y="total_bill",hue="sex",data=tips,dodge=True,palette="Set1")
设置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])
将集中趋势估计方式由平均数改为中位数:
import numpy as np
sns.pointplot(x="day",y="tip",data=tips,estimator=np.median)
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])
多分类嵌套的计数图:
sns.countplot(x="sex",hue="smoker",data=tips,palette="Set2")
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)
再多加入一个变量:
sns.catplot(x="day",y="total_bill",hue="sex",col="time",data=tips,jitter=True)
绘制小提琴图,并且不共享y轴:
sns.set_style("whitegrid")
sns.catplot(x="day",y="total_bill",hue="sex",col="time",data=tips,kind="violin",split="True",sharey=False)
绘制增强箱线图,改变网格宽度,设置每一列只显示两个图。
sns.catplot(x="time",y="total_bill",hue="sex",col="day",data=tips,kind="boxen",col_wrap=2,margin_titles=True)
绘制计数图,调节图像大小。
sns.catplot(x="day",hue="sex",col="time",data=tips,kind="count",height=4,aspect=1)