Interactive Tutorial

箱线图
不止一个矩形

箱线图(Box-and-Whisker Plot)用最简洁的形状,把一组数据的 分布、中心、离散程度、偏态、离群点 一次性讲清楚。

什么是箱线图?

1977 年由统计学家 John Tukey 提出。它基于数据的"五数概括" (最小值、Q1、中位数、Q3、最大值),用矩形 + 须 + 离群点 的几何形式,直观地展示一组数值样本的分布特征。

1

看中心

箱中那条粗线就是中位数,告诉你数据的中点在哪。

2

看离散

箱子的高度是 IQR(四分位距),数据最中间 50% 的跨度。

3

看范围

上下两根须线抵达非离群点的最远值,给出整体跨度。

4

看偏态

中位数在箱体中的位置 + 两须长度 → 是否对称、偏向哪边。

5

看异常

落在须线之外的散点就是离群点,需要单独审视。

拆解一个箱线图

把鼠标悬停在右侧任一部件上,左侧图会高亮对应区域。

八大核心部件

每一段都承载特定的统计含义。

最小值(下须末端) Q1 − 1.5×IQR 以内的最小观测
下四分位数 Q1(25%) 25% 的数据小于此值
中位数(50%) 数据按大小排序后正中央的值
上四分位数 Q3(75%) 75% 的数据小于此值
最大值(上须末端) Q3 + 1.5×IQR 以内的最大观测
下须线 连接 min 与 Q1 的细线
上须线 连接 Q3 与 max 的细线
离群点 超出 1.5×IQR 边界的观测值

怎么算出这些数字?

给定一组数据后,先排序,再用位置公式算出五个关键分位数。

分位数的位置公式

把数据从小到大排序为 x₁, x₂, …, xₙ, 第 p 分位数的位置为:

// 0 ≤ p ≤ 1,例如 p=0.25 即 Q1
position = 1 + p × (n − 1)

// 若位置不是整数,做线性插值
L = floor(position)
frac = position − L
quantile(p) = x[L] + frac × (x[L+1] − x[L])

离群点判定(Tukey fence):

IQR  = Q3 − Q1
下限 = Q1 − 1.5 × IQR
上限 = Q3 + 1.5 × IQR

// 任何 x < 下限 或 x > 上限 → 离群点

交互式构建器

拖动滑块或点击预设,观察箱线图随数据形态实时变化。

样本数量 40
分布扩散度(标准差) 8
离群点概率 5%
预设分布
原始数据点 🔴 红色为离群点

同一张图,讲六个故事

箱线图最大的价值在于——一眼就能分辨数据形态。下面是六组典型分布。

正态分布

数据对称分布,中位数在箱体中央

右偏分布

上须长,中位数靠近Q1,说明数据右拖尾

包含离群点

极端值单独显示为离群点

双峰分布

箱线图隐藏了双峰结构,需配合直方图

均匀分布

须与箱体等长,数据均匀铺开

紧密分布

数据高度集中,箱体很窄

箱线图真正的主场

当需要横向比较 2~10 组数据时,箱线图比柱状图更省心: 分布、偏态、离群点一次看清。

读图技巧

  • 看箱体重叠 —— 重叠多说明分布相近;完全错开则差异显著。
  • 看中位线对齐 —— 一组明显高于另一组时,差距不需要统计检验也能看出来。
  • 看须长比 —— 上下须严重不对称 = 数据偏态。
  • 看离群点的方向 —— 一侧离群点多 → 那侧尾巴长。

什么时候该用它?

箱线图不是万能的。下图帮你快速判断。

❓ 你想比较数据的什么?
YES → 用箱线图

分布、离散、异常

想知道"中间在哪"、"有多分散"、"有没有异常值"——箱线图是首选。

NO → 考虑其他图

精确数值或趋势

需要看具体每个点的值 → 用 strip plot;看随时间变化 → 用折线图;看相关系数 → 用散点图。

✅ 适合的场景

· 多组连续变量横向对比
· 检测异常值与离群点
· 数据预处理前的探索
· 报告/论文中替换柱状图

⚠️ 小心使用

· 样本量很小(n < 10)时不可靠
· 多峰分布会"抹平"特征
· 仅看均值时不如柱状图直观

❌ 不适合

· 类别变量(用条形图)
· 时间序列(用折线图)
· 需要看每个原始点(用 strip)

不只是矩形

标准箱线图的基础上,衍生出几种常用变体,应对不同分析需求。

缺口箱线图 (Notched)

在中位数附近挖一个"缺口",表示中位数的 95% 置信区间。两个箱的缺口不重叠 = 中位数差异显著。

水平箱线图

把整图旋转 90°。当分类标签很长、或需要纵向并排多组时使用。

小提琴图 (Violin)

用核密度估计把箱线图外轮廓替换成"小提琴形状"。能展示多峰结构,但概念更抽象。

记住这张卡片就够了

是中间 50% 的数据,
中位线告诉你中心位置,
覆盖正常范围,
散点是异常值。

boxplot = min + Q1 + median + Q3 + max + outliers