跳到内容
+

图表 - 堆叠

堆叠允许展示数值的分解。

基础知识

条形图和折线图允许堆叠序列。要将序列堆叠在一起,你需要传递给它们一个 stack 属性。具有相同 stack 值的序列将被堆叠在一起。

- MUI 组件库01234024681012
按下 Enter 键开始编辑

堆叠策略

基于 D3 的 堆叠顺序堆叠偏移,你可以修改序列的堆叠方式。

要传递这些属性,请使用序列属性 stackOffset (条形图默认为 'diverging',折线图默认为 'none')和 stackOrder (默认为 'none')。你可以只为一个堆叠组的其中一个序列定义它们。

堆叠偏移

如果你只想堆叠数值,将 stackOffset 设置为 'none' 应该可以满足需求。

然而,对于负值,你应该使用 'diverging'。否则,堆叠的矩形会重叠。

要显示相对于其他堆叠序列的序列演变(而不是它们的绝对值),你可以使用 'expand'

描述
'none' 将基线设置为 0,并将数据彼此堆叠。
'expand' 将基线设置为零,并将数据缩放至 1。
'diverging' 将正值堆叠在零以上,负值堆叠在零以下。

下一个演示允许测试不同的 stackOffset 值。

要查看它们如何与包含负值的数据集交互,你可以切换 “数据包含负值” 开关。当打开时,序列将具有以下组成

  • 序列 A 只有正值。
  • 序列 B 有一个负值。
  • 序列 C 和 D 只有负值。

堆叠顺序

堆叠数据的顺序对于图表的解读很重要。底部序列的演变最容易阅读,因为其基线为 0。

如果你知道你正在显示的数据,你可以使用 'none',它会尊重你在其中定义的序列顺序。否则,根据它们的属性对它们进行排序可能很有趣。

使用 'appearance',会考虑最大序列值的位置。

使用 'ascending''descending',会考虑数值的总和。这对应于序列在图表上占据的面积。

描述
'none' 尊重序列提供的顺序。
'reverse' 反转序列提供的顺序。
'appearance' 根据其最大值的索引按升序排列序列。最大值最早的序列将在底部。
'ascending' 根据其数值的总和按升序排列序列。占据最小面积的序列将在底部
'descending' 根据其数值的总和按降序排列序列。占据最大面积的序列将在底部

为了实验堆叠顺序,这里有一些关于用于上班的交通方式的统计数据,取决于家庭和办公室之间的距离。

- MUI 组件库0-11-22-33-44-55-66-77-88-99-1010-1111-1212-1313-1414-1515-1616-1717-1818-1919-2020-2121-2222-2323-2424-2525-3030-3535-4040-50>50Distance between home and office (km)050100

使用 'appearance' 顺序,**步行** 将是第一个,因为它的最大百分比是针对 **0-1公里**。最后一个是 **公共交通**,因为它的最大值在 **>50公里** 距离。

使用 'ascending' 顺序,堆叠从 **自行车** 和 **摩托车** 开始,因为它们的值分别总计为 41.7 和 55.4。然后是 **步行** (值总计为 94.1)。最后,是 **公共交通** 和 **汽车**,它们在视觉上更重要。

'descending' 顺序则完全相反。