Python:箱线图的理解与绘制

发布时间 2023-08-23 16:02:56作者: 人工智能技术栈

一、箱线图简介

如下图所示,箱线图(箱形图、盒须图)是一种基于5个统计量(上边界、上四分位数、中位数、下四分位数以及下边界)显示数据分布的标准化方法,其可以用来检测数据的异常值和数据分布的形状,以及数据集的离散程度。图中矩形框显示数据集的上下四分位数,而矩形框中延伸出的线段(触须)则用于显示其余数据的分布位置,剩下超过上下四分位间距的数据点则被视为“异常值”。

img

箱线图主要的组成元素及其具体含义如下所示:

  • 下四分位数Q1:将所有数据按照从小到大的顺序排在第25%的数;
  • 上四分位数Q3:将所有数据按照从小到大的顺序排在第75%的数;
  • 四分位间距(IQR, Interquartile Range):统计学中的一种数学表示方法(也称为四分差),为上四分位数与下四分位之间的距离,可表示为\(\Delta = Q3 - Q1\)
  • 上边界:除异常点以外数据中的最大值,可表示为\(Q3 + 1.5 \Delta\)
  • 下边界:除异常点以外数据中的最小值,可表示为\(Q1 - 1.5 \Delta\)
  • 异常值:小于下边界与大于上边界的值。

二、箱线图的绘制

本文给出基于matplotlibseaborn库的两种箱线图绘制方法。

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官方手册?:matplotlib.pyplot.boxplot — Matplotlib 3.7.2 documentation

2.2 基于seaborn库的箱线图绘制

附录

博文鉴赏:

Python绘图待扩展阅读