箱形图,也被称为箱线图,是一种统计学上常用的图表,用于展示一组数据的分布情况。它能够帮助我们快速识别出数据中的异常值、分布的中位数以及数据的离散程度。下面,我们就通过几个经典例题来学习如何绘制和解读箱形图。
例题一:绘制一组数据的箱形图
题目描述: 假设某班级20名学生的成绩如下(单位:分):85, 90, 78, 92, 88, 95, 80, 70, 90, 85, 92, 93, 87, 88, 79, 96, 94, 82, 80, 83。请绘制该班级学生成绩的箱形图。
解答步骤:
- 收集数据: 首先,我们需要收集好所有的数据点,这里已经给出。
- 计算中位数(Q2): 将数据从小到大排序后,找到中间位置的数,即中位数。如果数据点有偶数个,取中间两个数的平均值。
- 计算四分位数(Q1和Q3): 将数据分成两部分,一部分是低于中位数的,另一部分是高于中位数的。分别在这两部分数据中找到中位数,即Q1和Q3。
- 计算IQR(四分位距): IQR = Q3 - Q1。
- 确定异常值: 如果某个数据点小于Q1 - 1.5 * IQR或者大于Q3 + 1.5 * IQR,那么它被认为是异常值。
- 绘制箱形图: 使用箱形图表示上述计算结果。
代码示例:
import matplotlib.pyplot as plt
import numpy as np
data = np.array([85, 90, 78, 92, 88, 95, 80, 70, 90, 85, 92, 93, 87, 88, 79, 96, 94, 82, 80, 83])
q1 = np.percentile(data, 25)
q3 = np.percentile(data, 75)
iqr = q3 - q1
lower_bound = q1 - 1.5 * iqr
upper_bound = q3 + 1.5 * iqr
# 标记异常值
outliers = data[(data < lower_bound) | (data > upper_bound)]
not_outliers = data[(data >= lower_bound) & (data <= upper_bound)]
plt.boxplot([not_outliers], vert=False)
plt.title("箱形图")
plt.show()
例题二:解读箱形图
题目描述: 根据上面的箱形图,回答以下问题:
- 这组数据的中位数是多少?
- 数据的分布是否对称?
- 数据的离散程度如何?
- 是否存在异常值?
解答步骤:
- 观察箱形图的中心: 箱体的中心表示中位数(Q2)。
- 判断分布对称性: 如果箱体两侧的须(whiskers)长度大致相等,则数据分布对称。
- 评估离散程度: 箱体的高度表示数据的离散程度,越高表示数据越分散。
- 识别异常值: 观察须的末端是否有单独的点,这些点是异常值。
通过以上解答,我们可以轻松地学习如何绘制和解读箱形图。箱形图是一种非常直观的工具,可以帮助我们在短时间内获取大量关于数据分布的信息。
