跳到內容
+

圖表 - 堆疊

堆疊允許顯示數值的分解。

基礎知識

長條圖和折線圖允許堆疊序列。若要將序列堆疊在一起,您需要傳遞它們一個 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.755.4。然後是步行(數值總計為 94.1)。最後,是大眾運輸汽車,它們在視覺上更重要。

'descending' 順序則完全相反。