flowchart TD A["准备数据(宽表/长表)"] --> B["必要时整理为宽表(透视表/复制粘贴)"] B --> C["插入箱线图(2016+)或模拟箱线图(旧版)"] C --> D["校验分组标签是否对应"] D --> E["美化与输出(标题/单位/颜色/异常值)"]
箱线图介绍
箱线图(Box plot)是一种用于展示数据分布、离群值(异常值)与组间差异的统计图表。和“只看均值/柱状图”相比,箱线图更适合回答这类问题:
- 某个组的数据波动范围有多大?
- 哪个组的中位数更高?
- 是否存在明显的离群点(异常值)?
Excel 的箱线图通常由 5 个关键统计量构成(也称“五数概括”):
- 最小值(Min)
- 下四分位数(Q1)
- 中位数(Median)
- 上四分位数(Q3)
- 最大值(Max)
其中:
- 箱体:从 Q1 到 Q3,长度为四分位距 (IQR = Q3 - Q1)
- 箱体中线:中位数
- 须(whisker):向下/向上延伸到最小值与最大值(或到“非异常值”的边界,取决于实现)
- 异常值(离群点):常见规则是落在 (Q1 - 1.5IQR) 以下或 (Q3 + 1.5IQR) 以上的点
- Excel 2016/2019/365:通常支持“插入 → 统计图 → 箱形图(Box & Whisker)”,最省事。
- 更低版本:没有内置箱线图,需要用“辅助统计量 + 误差线”来模拟(本文给出一套可复现流程)。
单批箱线图绘制
本节以“一个组的数据”绘制一个箱线图为例,先把最基础的流程打通。
方法 1(推荐):Excel 2016+ 内置箱线图
适用:Excel 2016/2019/365。
- 把该组数据放在一列,并在列首写好组名表头(例如
上海)。 - 选中“表头 + 数据列”。
- 点击:
插入→统计图→箱形图(Box & Whisker)。 - 右键图表 →
设置数据系列格式,按实验需要调整:- 是否显示异常值(离群点)
- 是否显示均值标记
- 间隙宽度、箱体填充色等
- 补齐图表元素:标题、纵轴单位、数据来源说明等。
如果你只选了数字区域没有选表头,Excel 可能会把分组名当作“系列1”,导致后续多组扩展时标签更容易错位。
方法 2(兼容旧版):用“统计量 + 堆积柱形图 + 误差线”模拟箱线图
适用:没有内置箱线图的 Excel 版本。
思路:先算出 Min/Q1/Median/Q3/Max,再用堆积柱形图画出箱体(Q1→Q3),用误差线画“须”。
第 1 步:计算五数概括(建议放在一张辅助表)
假设原始数据在 B2:B101(可按实际调整),统计量区写:
MIN: =MIN(B2:B101)
Q1: =QUARTILE.INC(B2:B101,1)
MEDIAN: =MEDIAN(B2:B101)
Q3: =QUARTILE.INC(B2:B101,3)
MAX: =MAX(B2:B101)
IQR: =Q3-Q1
第 2 步:构造作图用的“堆积高度”
再构造两列(或两行)用于堆积柱形图:
- Base(底座):Q1
- Box(箱体高度):Q3 - Q1
并准备两条误差线长度:
- 下须长度:Q1 - Min
- 上须长度:Max - Q3
第 3 步:画堆积柱形图 + 误差线
- 选中
Base与Box两列,插入 → 堆积柱形图。 - 把
Base系列设置为“无填充”(隐藏底座),只显示箱体。 - 给
Box系列添加误差线:- 下误差线长度设为
下须长度 - 上误差线长度设为
上须长度
- 下误差线长度设为
- (可选)用散点/线条额外标记中位数位置。
该方法能稳定画出“箱体 + 须”,但对“异常值规则”“均值标记”等细节不如内置箱线图方便。实验中只要能正确展示分布与组间差异,通常即可满足要求。
多批箱线图绘制
多批(多组)箱线图最常见的坑不是“图画不出来”,而是横轴分组标签与箱线图不对应。这一节会同时覆盖两种数据结构:宽表与长表,并给出修复路径。
绝大多数情况下,箱线图的“分组名称”来自:
- 宽表的列标题(每组一列,每列的表头就是组名)
- 或者来自你在“选择数据源”里设置的系列名称
情况 A:宽表数据(每组一列)——最推荐
数据结构示例(同一列内是同一组观测值):
| 上海 | 北京 | 广东 |
|---|---|---|
| 12 | 9 | 10 |
| 15 | 11 | 13 |
| … | … | … |
操作(Excel 2016+):
- 确保第 1 行是各组表头(上海/北京/广东)。
- 选中“表头 + 所有数据列”。
- 插入 → 统计图 → 箱形图(Box & Whisker)。
如果横轴显示为“系列1、系列2…”,通常是因为你没把表头选进去,或数据区域被识别成了行系列。解决方法见后面的“标签错位修复清单”。
情况 B:长表数据(一列数值 + 一列组别)
长表结构示例:
| 地区 | 指标 |
|---|---|
| 上海 | 12 |
| 上海 | 15 |
| 北京 | 9 |
| … | … |
这类数据要想在 Excel 里画“多组箱线图”,最稳的做法是先转成宽表。
路径 B1(推荐):透视表把长表转宽表,再作图
- 选中长表 → 插入 → 透视表。
- 将
地区放到“列”,将指标放到“值”区域。 - 在透视表上方右键“值字段设置”:把汇总方式改成“平均值/计数”并不适合箱线图。
因此这里有一个更稳的实验做法:
- 透视表主要用于把各组的观测值分列(形成宽表外形)
- 然后复制透视表结果 → 选择性粘贴为值 → 得到可直接作图的宽表
完成后按“情况 A:宽表数据”插入箱线图即可。
路径 B2(可选):不转宽表,直接作图(容易标签错位)
如果你直接选中“地区列 + 指标列”尝试插入箱线图,Excel 常会把它理解成“一个系列 + 类别轴为每一行”,导致横轴标签与箱体不对应。
不建议作为实验默认路径;如果你已经走到这里,优先用下面的修复清单来救回。
多批箱线图标签错位:修复清单(按顺序排查)
- 是否选中了表头?
- 宽表必须选中第 1 行的组名表头。
- 图表设计 → 是否需要“切换行/列”?
- 宽表正确形态是“每一列 = 一个系列(一个组)”。
- 右键图表 → 选择数据源 → 系列名称是否正确?
- 每个系列名称应为“上海/北京/广东”,不是“系列1/系列2”。
- 数据是否真的按组分列?
- 如果你是长表,请先走“透视表转宽表”路径。
- 是否存在空列/合并单元格/文本数字?
- 这些会干扰 Excel 对数据区域的识别。
在 lab/tips03-chart-basic.qmd 中曾引用 image/box-not-perfect.png 用于说明“组标签不对应”的现象。
当前仓库未检索到该图片文件,建议后续将该截图加入到 tutor-excel/chart-box/ 的配套图片目录后,再在本文中插入对照示例。
总结及注意事项
一页式速查
- 优先宽表作图:每组一列、列首为组名,最不容易错。
- 长表先转宽表:推荐透视表/复制粘贴分列后再插入箱线图。
- 标签不对应:先检查表头、再“切换行/列”、再检查系列名称。
- 异常值显示:按实验要求决定是否勾选显示离群点/均值标记。
- 类型问题:文本数字会导致统计量与图形异常;空值/混杂文本会影响箱体。
常见错误
- 只选了数字区域,没选表头,导致横轴显示“系列1、系列2…”
- 长表直接插入图表,Excel 把每一行当类别,导致标签错位
- 数据里混入空格/文本数字/缺失值,造成箱体高度异常或须不合理
- 低版本 Excel 没有内置箱线图,却还在找“统计图 → 箱形图”
扩展知识
1.5×IQR 规则(异常值的直觉)
设 \(IQR = Q3 - Q1\),常见的异常值判定边界为:
- 下界:\(Q1 - 1.5\\times IQR\)
- 上界:\(Q3 + 1.5\\times IQR\)
落在区间外的点会被标记为离群点。实验中你可以把“异常值”理解为:相对整体分布来说特别极端的观测,它既可能是录入错误,也可能是真实但罕见的情况。
多组比较的可读性小技巧
- 先按中位数或均值对组进行排序(会更容易看出差异)
- 统一纵轴范围与单位,避免误读
- 组数较多时,适当加大图表宽度、减少装饰元素,突出箱体与中位数线