目录
一、箱线图简介
如下图所示,箱线图(箱形图、盒须图)是一种基于5
个统计量(上边界、上四分位数、中位数、下四分位数以及下边界)显示数据分布的标准化方法,其可以用来检测数据的异常值和数据分布的形状,以及数据集的离散程度。图中矩形框显示数据集的上下四分位数,而矩形框中延伸出的线段(触须)则用于显示其余数据的分布位置,剩下超过上下四分位间距的数据点则被视为“异常值”。
箱线图主要的组成元素及其具体含义如下所示:
- 下四分位数
Q1
:将所有数据按照从小到大的顺序排在第25%
的数; - 上四分位数
Q3
:将所有数据按照从小到大的顺序排在第75%
的数; - 四分位间距(IQR, Interquartile Range):统计学中的一种数学表示方法(也称为四分差),为上四分位数与下四分位之间的距离,可表示为\(\Delta = Q3 - Q1\)。
- 上边界:除异常点以外数据中的最大值,可表示为\(Q3 + 1.5 \Delta\);
- 下边界:除异常点以外数据中的最小值,可表示为\(Q1 - 1.5 \Delta\);
- 异常值:小于下边界与大于上边界的值。
二、箱线图的绘制
本文给出基于matplotlib
与seaborn
库的两种箱线图绘制方法。
2.1 基于matplotlib
库的箱线图绘制
matplotlib
中绘制箱线图的函数为boxplot()
,其函数原型如下所示:
matplotlib.pyplot.boxplot(x, notch=None, sym=None, vert=None, whis=None, positions=None, widths=None, patch_artist=None, bootstrap=None, usermedians=None, conf_intervals=None, meanline=None, showmeans=None, showcaps=None, showbox=None, showfliers=None, boxprops=None, labels=None, flierprops=None, medianprops=None, meanprops=None, capprops=None, whiskerprops=None, manage_ticks=True, autorange=False, zorder=None, capwidths=None, *, data=None)
常用的参数及功能如下表所示:
参数 | 功能 | 参数 | 功能 |
---|---|---|---|
x |
指定要绘制箱线图的数据 | showcaps |
是否显示箱线图顶端与末端的两条线 |
notch |
是否以凹口的形式展示箱线图 | showbox |
是否显示箱线图的箱体 |
sym |
指定异常点的形状 | showfliers |
是否显示异常值 |
更详细的可以参考matplotlib
官方手册