logo

G2

  • 文档
  • 图表介绍
  • API
  • 图表示例
  • 主题
  • 周边生态
  • 所有产品antv logo arrow
  • 5.3.3
  • 📈 图表分类
  • 马赛克图
  • 堆叠柱状图
  • 分组柱状图
  • 气泡图
  • 色块图
  • 玉珏图
  • 直方图
  • 柱状图
  • 带气泡的地图
  • 雷达图
  • 面积图
  • 箱形图
  • 双向柱状图
  • 环图
  • 热力图
  • 分级统计地图
  • 漏斗图
  • K线图
  • 仪表盘
  • 等高线图
  • 桑基图
  • 子弹图
  • 和弦图

箱形图

上一篇
面积图
下一篇
双向柱状图

Resources

Ant Design
Galacea Effects
Umi-React 应用开发框架
Dumi-组件/文档研发工具
ahooks-React Hooks 库

社区

体验科技专栏
seeconfSEE Conf-蚂蚁体验科技大会

帮助

GitHub
StackOverflow

more products更多产品

Ant DesignAnt Design-企业级 UI 设计语言
yuque语雀-知识创作与分享工具
EggEgg-企业级 Node 开发框架
kitchenKitchen-Sketch 工具集
GalaceanGalacean-互动图形解决方案
xtech蚂蚁体验科技
© Copyright 2025 Ant Group Co., Ltd..备案号:京ICP备15032932号-38

Loading...

boxplot

箱形图的简介

箱形图(Box Plot),又称盒须图、盒式图或箱线图,是一种用于展示一组数据分布情况的统计图表。它能够显示数据的五个重要统计量:最小值、下四分位数(Q1)、中位数(Q2)、上四分位数(Q3)和最大值,同时可以清楚地识别出数据中的异常值。

箱形图的设计简洁明了,通过箱体和须线的组合,可以快速了解数据的集中趋势、离散程度和偏态分布,是统计分析和数据探索中的重要工具。

英文名:Box Plot, Box-and-Whisker Plot

其他名称:盒须图、盒式图、箱线图

箱形图的构成

基础箱形图

boxplot-anatomy
图表类型箱形图
适合的数据一个分类数据字段、一个连续数据字段
功能展示数据分布情况,识别异常值,比较不同分组的数据分布
数据与图形的映射分类数据字段映射到横轴位置
连续数据字段自动计算统计值映射到箱体各部分
异常值显示为散点
适合的数据条数每个分组建议至少有 5-10 个数据点

箱形图的主要组成部分包括:

  • 箱体:从下四分位数(Q1)到上四分位数(Q3)的矩形区域,包含了中间 50%的数据
  • 中位线:箱体内部的水平线,表示数据的中位数(Q2)
  • 须线:从箱体延伸出的线段,通常延伸到 1.5 倍四分位距(IQR)范围内的最远数据点
  • 异常值:超出须线范围的数据点,以单独的点标记显示

import { Chart } from '@antv/g2';
const chart = new Chart({
container: 'container',
theme: 'classic',
});
chart.options({
type: 'boxplot',
autoFit: true,
data: {
type: 'fetch',
value: 'https://assets.antv.antgroup.com/g2/morley.json',
},
encode: {
x: 'Expt',
y: 'Speed',
},
style: {
boxFill: '#1890ff',
boxFillOpacity: 0.3,
pointStroke: '#f5222d',
pointR: 3,
},
});
chart.render();

箱形图的应用场景

适合的场景

场景 1:数据分布分析

箱形图是分析数据分布的理想工具,能够快速识别数据的集中趋势、离散程度和偏态分布。

import { Chart } from '@antv/g2';
const chart = new Chart({
container: 'container',
theme: 'classic',
});
chart.options({
type: 'boxplot',
autoFit: true,
data: {
type: 'fetch',
value: 'https://assets.antv.antgroup.com/g2/penguins.json',
},
encode: {
x: 'species',
y: 'flipper_length_mm',
color: 'species',
},
axis: {
y: {
title: '鳍长 (mm)',
},
x: {
title: '企鹅种类',
},
},
});
chart.render();

场景 2:异常值检测

箱形图能够直观地显示数据中的异常值,帮助识别需要进一步调查的数据点。

场景 3:多组数据比较

通过并排显示多个箱形图,可以有效地比较不同组别间的数据分布差异。

import { Chart } from '@antv/g2';
const chart = new Chart({
container: 'container',
theme: 'classic',
});
chart.options({
type: 'boxplot',
autoFit: true,
data: {
type: 'fetch',
value: 'https://assets.antv.antgroup.com/g2/penguins.json',
},
encode: {
x: 'species',
y: 'flipper_length_mm',
color: 'sex',
series: 'sex',
},
axis: {
y: {
title: '鳍长 (mm)',
},
x: {
title: '企鹅种类',
},
},
});
chart.render();

不适合的场景

场景 1:数据量过少

当每个分组的数据点少于 5 个时,箱形图的统计意义不大,建议使用散点图或条形图。

场景 2:展示精确数值

箱形图侧重于显示数据分布的整体特征,不适合需要精确数值的场景,此时应使用表格或条形图。

场景 3:时间序列分析

对于时间序列数据的趋势分析,折线图或面积图更为合适。

箱形图的扩展

分组箱形图

通过设置不同的颜色和系列,可以在同一图表中比较多个维度的数据分布。

import { Chart } from '@antv/g2';
const chart = new Chart({
container: 'container',
theme: 'classic',
});
chart.options({
type: 'boxplot',
autoFit: true,
data: {
type: 'fetch',
value: 'https://assets.antv.antgroup.com/g2/penguins.json',
},
encode: {
x: 'species',
y: 'body_mass_g',
color: 'sex',
series: 'sex',
},
axis: {
y: {
title: '体重 (g)',
},
x: {
title: '企鹅种类',
},
},
});
chart.render();

横向箱形图

当分类标签过长时,可以使用横向箱形图来提高可读性。

import { Chart } from '@antv/g2';
const chart = new Chart({
container: 'container',
theme: 'classic',
});
chart.options({
type: 'boxplot',
coordinate: { transform: [{ type: 'transpose' }] },
autoFit: true,
data: {
type: 'fetch',
value: 'https://assets.antv.antgroup.com/g2/morley.json',
transform: [{ type: 'filter', callback: (d) => d.Expt <= 3 }],
},
encode: {
x: 'Expt',
y: 'Speed',
color: 'Expt',
},
axis: {
x: {
title: '光速测量值',
},
y: {
title: '实验编号',
},
},
});
chart.render();

无异常点箱形图

在某些场景下,可以隐藏异常点,只关注数据的整体分布。

import { Chart } from '@antv/g2';
const chart = new Chart({
container: 'container',
theme: 'classic',
});
chart.options({
type: 'boxplot',
autoFit: true,
data: {
type: 'fetch',
value: 'https://assets.antv.antgroup.com/g2/morley.json',
},
encode: {
x: 'Expt',
y: 'Speed',
},
style: {
point: false,
boxFill: '#52c41a',
boxFillOpacity: 0.4,
},
axis: {
y: {
title: '光速测量值',
},
x: {
title: '实验编号',
},
},
});
chart.render();

箱形图与其他图表的对比

箱形图和直方图

  • 箱形图主要展示数据的统计摘要(五数概括),适合快速比较多个分组
  • 直方图展示数据的具体分布形状,适合单个变量的分布分析

箱形图和柱状图

  • 箱形图适合展示数据的分布情况和统计特征
  • 柱状图主要用于比较不同分类的数值大小

箱形图和散点图

  • 箱形图适合展示分组数据的分布概览
  • 散点图适合展示具体数据点的分布和相关关系

相似图表

直方图
直方图
比较类
分布类
柱状图
柱状图
比较类

分类

分布类
比较类