写点什么

seaborn 绘制箱型图

作者:Peter
  • 2022 年 4 月 13 日
  • 本文字数:1719 字

    阅读完需:约 6 分钟

seaborn绘制箱型图

公众号:尤而小屋

作者:Peter

编辑:Peter


大家好,我是 Peter~


本文介绍的是如何使用 seaborn 的 boxplot 方法来绘制箱型图,先看看部分图形的绘制效果:



参数

绘制图形中的主要参数如下:



更多资料可参考官网地址:https://seaborn.pydata.org/generated/seaborn.boxplot.html

箱型图

箱型图是一种用作显示一组数据分散情况资料的统计图,它能够快速显示数据中的异常值情况,其形状像盒子,因而得名,也称之为盒须图、盒式图、盒装图或者箱型图


1977 年,美国著名数学家 John W. Tukey 首先在他的著作《Exploratory Data Analysis》中介绍了箱形图。



四分位数是箱型图中最为重要的概念。Q3 和 Q1 的差距称为四分位距(InterQuartile Range, IQR):IQR=Q3-Q1


内置数据

Seaborn 也有自己内置的数据集:


import seaborn as sns# style设置sns.set_theme(style="whitegrid")  
复制代码

tips

消费数据集 tips


iris

知名的鸢尾花数据集


水平箱型图

In [4]:


# 方式1:指定x为某个Series型数据
ax = sns.boxplot(x=tips["total_bill"])
复制代码


# 方式2:传入x和data参数ax = sns.boxplot(x="total_bill",                data=tips)
复制代码


垂直箱型图

In [6]:


ax = sns.boxplot(y=tips["total_bill"])
# 方式2:传入y和data参数# ax = sns.boxplot(y="total_bill", data=tips)
复制代码


参数 orient

In [7]:


ax = sns.boxplot(x="day",y="total_bill", data=tips)
复制代码



改变 x-y 的位置:


ax = sns.boxplot(y="day",x="total_bill", data=tips)
复制代码


参数 order

对指定的参数进行排序


In [11]:


# 默认情况ax = sns.boxplot(    x="sex",    y="tip",     data=tips)
复制代码



下面的例子中我们引入了参数 order,主要是查看 x 轴中两个标签;


In [12]:


ax = sns.boxplot(    x="sex",    y="tip",     data=tips,    order=["Female","Male"]  # 引入参数)
复制代码


和默认情况下的排序不同,按照指定的顺序进行展示:


参数 hue 使用

参数 hue 主要是用来进行色条的调节


In [13]:


ax = sns.boxplot(    x="day",    y="tip",     data=tips,    hue="sex"  # 引入参数)
复制代码


参数 hue_order

In [14]:


ax = sns.boxplot(    x="day",    y="tip",     data=tips,    hue="sex",    hue_order=["Female","Male"]  # 引入参数)
复制代码


参数 palette

颜色版的设置使用 palette


In [15]:


ax = sns.boxplot(    x="day",    y="tip",     data=tips,    hue="sex",    palette="Set3"  # 颜色版)
复制代码



ax = sns.boxplot(    x="day",    y="tip",     data=tips,    hue="sex",    palette="Set2"  # 颜色版)
复制代码




大小参数

主要是 saturation、width、fliersize、linewidth、whis 的设置


In [19]:


# 全部是默认情况ax = sns.boxplot(x="sex",y="tip", data=tips, hue="day")
复制代码



ax = sns.boxplot(    x="sex",    y="tip",     data=tips,    hue="day",    width=0.7,    linewidth=3,)
复制代码



ax = sns.boxplot(    x="sex",    y="tip",     data=tips,    hue="day",    width=0.7,    linewidth=3,    whis=3  # 引入whis)
复制代码


参数 notch

自定义缺口


In [22]:


ax = sns.boxplot(    x="day",      y="total_bill",      hue="sex",     data=tips,    notch=True   # 加入参数)
复制代码


参数 dodge

必须和 hue 一起使用,控制同一个分组下面的箱型图是分开绘制还是重叠在一起


In [23]:


ax = sns.boxplot(  x="day",   y="total_bill",   hue="sex",  data=tips,   dodge=False)
复制代码



ax = sns.boxplot(    x="day",     y="total_bill",    hue="sex",    data=tips,     dodge=True)
复制代码


catplot-分类图

箱型图和分类图的结合使用


In [26]:


ax = sns.catplot(    x="sex",     y="total_bill",    hue="smoker",     col="time",    data=tips,     kind="box",  # 箱型图    height=4,     aspect=.7)
复制代码



ax = sns.catplot(    x="total_bill",    y="sex",                hue="smoker",     col="time",    data=tips,     orient="h",  # 水平方向    kind="box",  # 箱型图    height=4,     aspect=.7,    palette="Set2")
复制代码



ax = sns.catplot(    x="sex",     y="total_bill",    hue="smoker",     col="time",    data=tips,     kind="violin",  # 小提琴图    height=4,     aspect=.7)
复制代码



发布于: 刚刚阅读数: 2
用户头像

Peter

关注

志之所趋,无远弗届,穷山距海,不能限也。 2019.01.15 加入

还未添加个人简介

评论

发布
暂无评论
seaborn绘制箱型图_可视化_Peter_InfoQ写作平台