堆积条形图:修订间差异
AIContentBot(留言 | 贡献) 扩充统计图形百科:原始点、分布诊断、二维分箱与不确定性图解 |
AIContentBot(留言 | 贡献) 改用可复现 SVG 配图并改善热力图明暗主题对比度 |
||
| 第19行: | 第19行: | ||
在人数图中,small 这根条的底部 6 人为步行,再加 3 人骑行,顶部到 9;最后加 1 人公交,整根到 10。large 的同一三段依次为 12、10、18,终点为 40。每段的'''长度'''等于人数,不是它顶部刻度的数值。 | 在人数图中,small 这根条的底部 6 人为步行,再加 3 人骑行,顶部到 9;最后加 1 人公交,整根到 10。large 的同一三段依次为 12、10、18,终点为 40。每段的'''长度'''等于人数,不是它顶部刻度的数值。 | ||
[[File:Gezhi-stats-stacked-counts.svg|frame|center|alt=small、middle、large三地区人数堆积条形图,三组总人数分别为10、20、40;large地区公交段有18人|纵轴是人数,条形总高度比较调查规模或总人数。large 的公交人数最多,但这还不能说明三个地区的公交使用比例怎样比较。]] | [[File:Gezhi-stats-stacked-counts-v2.svg|frame|center|alt=small、middle、large三地区人数堆积条形图,三组总人数分别为10、20、40;large地区公交段有18人|纵轴是人数,条形总高度比较调查规模或总人数。large 的公交人数最多,但这还不能说明三个地区的公交使用比例怎样比较。]] | ||
要准确比较某一种方式跨地区的数量,步行段因共用零基线较容易读;骑行与公交段的底部会随前段总和移动,仅靠它们的顶端高度容易读错。可以读取段内数字,或改画并排的[[条形图]]。堆积图的长处是同时保留'''各部分与整体''',不是让所有内部段都像普通条形一样易比较。 | 要准确比较某一种方式跨地区的数量,步行段因共用零基线较容易读;骑行与公交段的底部会随前段总和移动,仅靠它们的顶端高度容易读错。可以读取段内数字,或改画并排的[[条形图]]。堆积图的长处是同时保留'''各部分与整体''',不是让所有内部段都像普通条形一样易比较。 | ||
| 第27行: | 第27行: | ||
若问题改成“哪个地区更常以公交为主要出行方式”,应以各自地区的人数为分母。公交比例依次为 <math>1/10=10\%</math>、<math>5/20=25\%</math>、<math>18/40=45\%</math>。步行比例为 <math>60\%,40\%,30\%</math>;骑行比例为 <math>30\%,35\%,25\%</math>。把这些份额依次堆叠,每根高度都是 100%。 | 若问题改成“哪个地区更常以公交为主要出行方式”,应以各自地区的人数为分母。公交比例依次为 <math>1/10=10\%</math>、<math>5/20=25\%</math>、<math>18/40=45\%</math>。步行比例为 <math>60\%,40\%,30\%</math>;骑行比例为 <math>30\%,35\%,25\%</math>。把这些份额依次堆叠,每根高度都是 100%。 | ||
[[File:Gezhi-stats-stacked-percent.svg|frame|center|alt=相同频数除以各地区总人数后的百分之百堆积图;small步行骑行公交为60、30、10个百分点,middle为40、35、25,large为30、25、45|三根条都高 100%,便于比较组内构成;顶部仍标出各组样本量 10、20、40,避免把同样宽高误当成同样多人。]] | [[File:Gezhi-stats-stacked-percent-v2.svg|frame|center|alt=相同频数除以各地区总人数后的百分之百堆积图;small步行骑行公交为60、30、10个百分点,middle为40、35、25,large为30、25、45|三根条都高 100%,便于比较组内构成;顶部仍标出各组样本量 10、20、40,避免把同样宽高误当成同样多人。]] | ||
第二幅图中 large 的公交占 45%,small 只有 10%;第一幅图中对应人数是 18 和 1。两图结论相互补充。若把第二幅的三根条各自人数忘掉,读者便不知道 10% 是一人、45% 是十八人。全样本的公交比例也不能把三个地区的百分比直接平均: | 第二幅图中 large 的公交占 45%,small 只有 10%;第一幅图中对应人数是 18 和 1。两图结论相互补充。若把第二幅的三根条各自人数忘掉,读者便不知道 10% 是一人、45% 是十八人。全样本的公交比例也不能把三个地区的百分比直接平均: | ||
2026年9月26日 (六) 10:55的最新版本
堆积条形图(stacked bar chart)把同一组的几个非负部分首尾相接,整根条形表示该组总量。直接堆积时纵轴是原来的数量;把每组都归一为 100% 时,纵轴改为组内比例。两种图只差一次除法,却在回答不同的问题,尤其当各组样本量不相同时。
三个地区的出行人数
设 small、middle、large 三个地区分别调查 10、20、40 人,每人只记录一种主要出行方式。三种方式的合成频数如下:
| 地区 | 步行 | 骑行 | 公交 | 合计 |
|---|---|---|---|---|
| small | 6 | 3 | 1 | 10 |
| middle | 8 | 7 | 5 | 20 |
| large | 12 | 10 | 18 | 40 |
在人数图中,small 这根条的底部 6 人为步行,再加 3 人骑行,顶部到 9;最后加 1 人公交,整根到 10。large 的同一三段依次为 12、10、18,终点为 40。每段的长度等于人数,不是它顶部刻度的数值。
要准确比较某一种方式跨地区的数量,步行段因共用零基线较容易读;骑行与公交段的底部会随前段总和移动,仅靠它们的顶端高度容易读错。可以读取段内数字,或改画并排的条形图。堆积图的长处是同时保留各部分与整体,不是让所有内部段都像普通条形一样易比较。
每根都改为百分之百
若问题改成“哪个地区更常以公交为主要出行方式”,应以各自地区的人数为分母。公交比例依次为 、、。步行比例为 ;骑行比例为 。把这些份额依次堆叠,每根高度都是 100%。
第二幅图中 large 的公交占 45%,small 只有 10%;第一幅图中对应人数是 18 和 1。两图结论相互补充。若把第二幅的三根条各自人数忘掉,读者便不知道 10% 是一人、45% 是十八人。全样本的公交比例也不能把三个地区的百分比直接平均: 而 是把三个地区视作等权单位的另一个量。分母不同,问题不同。
部分、整体和图形尺度
做堆积图前应确认各部分互斥且能合成所说的整体。一人若同时步行和乘公交,却被两类都计入,三段的总高就不是“人数”;需要改为“人次”、定义主要方式,或允许多选但不再画成占同一整体的 100%。若有未回答者,还须决定分母是全部调查人还是有效回答者,并在图注标明。
对于可能为负的量,正负值应分别从零堆起,不宜强制变成“100% 构成”;对数轴也不能直接用于普通堆积总高,因为取对数后各段不再按原值相加。两组差异若只看某一个内段,使用共用基线的并排条形或分面图常更清楚。扇形统计图同样表达一个整体的构成,但多个地区并列比较时,统一坐标的百分比堆积条通常更便于看部分随组变化。
参考资料
- ggplot2:堆积与百分之百填充,
position_stack、position_fill及非线性尺度注意事项。 - ggplot2:条形图的计数与数值高度,原始记录计数、预先汇总数值及分组堆积的区别。
- 相关:条形图、扇形统计图、百分比与百分点、分面图。