当前位置:首页>python>用Python做科研级画图——堆叠柱的误区

用Python做科研级画图——堆叠柱的误区

  • 2026-09-10 05:08:04
用Python做科研级画图——堆叠柱的误区

大家好,我是你们的小帅学长。

堆叠柱状图(Stacked Bar)有一种天然的“高级感”:一根柱子里塞满了结构信息,总量 + 组成,一图搞定。

很多同学第一次学会 bottom= 参数时都会兴奋地说一句:“这个图信息量好大!”

但问题来了——信息量大 ≠ 可读性强;结构丰富 ≠ 对比清晰。

事实上,堆叠柱是最容易“看起来完整、实际上难比较”的图之一。这一篇,我们不讲怎么画,而讲什么时候不要用。

01.堆叠柱到底在表达什么?

堆叠柱本质上在表达两件事:一是每个类别的总量;二是每个类别内部的组成结构。

所以它适合回答的问题是:总量随组别变化吗?组成比例大致如何?

但它不擅长回答的问题是:中间层谁更大?结构变化趋势清晰吗?不同组之间某一组成差多少?

一旦你想比较“中间层”,问题就开始了。

02.堆叠柱最核心的问题:只有第一层有固定基线

这是理解堆叠柱误区的关键。

在一根堆叠柱中:第一层有固定基线(0);第二层开始“漂浮”;第三层更漂浮;第四层……已经没有直观基线了。

我们对“长度”的比较依赖于共同基线。一旦没有共同基线,我们比较能力会急剧下降。这就是为什么:堆叠柱越往上,越难比较。

03.四种典型“不该用堆叠柱”的场景

场景 1:你想比较中间层

例如:不同地区中,“工业排放”谁更高?不同模型中,“Recall”谁更高?

如果它不是底层组成,堆叠柱会严重干扰判断。

替代方案:分组柱 或 分面图(每个组成单独比较)

场景 2:类别很多(>4)

堆叠层数一多:颜色变得难区分、图例需要来回对照、认知负担急剧上升,

读者不是在“读图”,而是在“找颜色”。

替代方案:只保留 Top-N,其余合并为 “Other”,或者改为 100% 占比图(如果你关心比例)

场景 3:你真正关心的是比例,而不是总量

如果你的重点是:结构占比变化

那普通堆叠柱会把总量变化混进来,让比例变化变得不清晰。

替代方案:100% 堆叠柱(归一化)

场景 4:需要精确对比

堆叠柱天生不适合精确比较差值。

如果你想表达:A 比 B 多 3%;某层增长了 5 单位,堆叠柱会让这些变化变得模糊。

替代方案:分组柱 + 误差线;或者点图。

04.堆叠柱什么时候是对的?

堆叠柱适合:

展示整体规模 + 结构

只关心“总量是否增长”

组成类别不超过 3–4 个

堆叠柱适合“宏观结构感知”,不适合“精确对比分析”。

05.一个直观对比思维实验

假设有三座城市,每座城市的能源结构:煤炭、天然气、可再生能源。

如果你问“哪座城市总能耗最高?”——堆叠柱很好。

但如果你问“哪座城市的可再生能源比例更高?”——普通堆叠柱就开始误导。如果你问“天然气增长最快的是哪座?”——几乎看不出来。

这就是图形和问题匹配的重要性。

如果你发现自己在堆叠柱里盯着中间层反复看,那说明它已经不适合这个问题了。

堆叠柱看起来信息量最大,但它最容易牺牲比较能力;当你真正关心差异时,不要让结构感掩盖了对比本身。

下一篇我打算讲《点图(Dot plot)替代柱状》,很多时候,一根粗柱子,其实可以用一个干净的点替代。而那一个点,往往更诚实,也更优雅。

——期待你的关注——

 往期内容:

用Python做科研级画图——分组对比

用Python做科研级画图——柱状图基础

用Python做科研级画图——折线图基础模板

用Python做科研级画图——配色与色带:连续离散怎么选

用Python做科研级画图——论文级排版检查清单(Checklist)

最新文章

随机文章