箱线图是一种常用的统计图形,它主要用于展示和比较多个数据集的分布特征。具体来说,箱线图具有以下作用:
- 显示数据的集中趋势和离散程度。箱线图通过展示数据的四分位数(Q1、Q2、Q3)和中位数,可以直观地反映数据的中心趋势和离散程度。
- 识别异常值(outliers)。箱线图中的异常值通常被定义为超过Q3+1.5IQR或低于Q1-1.5IQR的值,可以通过箱线图直观地识别这些异常值,并进行分析。
- 比较不同组别的数据分布。箱线图可以同时展示多个数据集,便于比较不同组别或条件下的数据分布。
- 检查数据的对称性和偏态。箱线图的高度差可以用来检查数据的偏态,箱子宽度在一定程度上反映了数据的波动程度,箱体越扁或端线越短,说明数据越集中。
- 数据可视化。箱线图是一种简单直观的数据可视化方式,可以快速了解数据的分布情况和异常值,有助于数据分析和决策制定。
总的来说,箱线图是一种强大的工具,可以帮助我们快速了解数据的分布情况、发现异常值,并进行简单的数据比较和分析。
我们可以使用matplotlib库很方便的绘制出来,下面就是对应的示例:
函数boxplot()——用于绘制箱线图
函数功能: 绘制箱线图
函数签名:
plt.boxplot(testList,
whis=1.6,
patch_artist=True,
sym='o',
labels=["随机数A", "随机数B"],
widths=0.35,
notch=True,
capwidths=[0.01, 0.2])
参数说明:
- notch:是否绘制带缺口的箱线图
- sym: 异常点的标记形状
- capwidths:盖帽的宽度
- whis: 箱须的位置,默认值为1.5
- widths: 箱子的宽度,默认值为0.5
- labels:每个数据集的标签
示例代码:
import matplotlib.pyplot as plt
import numpy as np
# 解决中文显示乱码问题
plt.rcParams['font.sans-serif'] = ['SimHei']
# 解决负号不能正常显示问题
plt.rcParams['axes.unicode_minus'] = False
testA = np.random.randn(5000)
testB = np.random.randn(5000)
testList = [testA, testB]
# 绘制箱线图
plt.boxplot(testList,
whis=1.6,
patch_artist=True,
sym='*',
labels=["随机数A", "随机数B"],
widths=0.35,
notch=True,
capwidths=[0.2, 0.6])
plt.savefig('boxplot.png', dpi=200)
plt.show()
运行结果: