太陽射線圖:徑向層級與多層環形分解

當呈現多層級層次結構時,內圈代表高階類別,外圈則分解為子類別,此時太陽射線圖提供了一種乾淨的徑向替代方案,取代樹狀圖。透過將嵌套類別排列成同心環,太陽射線圖讓使用者能夠探索多層級結構比例、父節點與子節點關係,以及分佈路徑於緊湊空間中——例如全球產品類別、組織架構圖,或多重步驟的使用者流失路徑。

太陽射線圖的運作原理

在 Apache ECharts 中,太陽射線圖使用type: 'sunburst'。與樹狀圖類似,系列期望在data陣列中包含嵌套的樹狀結構,其中父物件包含children陣列。引擎會將根節點或頂層類別繪製於最內圈,並沿著同心環層向外擴展子類別。

1. 基本設定

要建立基本的太陽射線圖,需提供一個嵌套樹狀資料集,並在系列物件中設定type: 'sunburst'於系列物件內:

option = {
    tooltip: {
        trigger: 'item',
        formatter: '{b}: {c}'
    },
    series: [
        {
            type: 'sunburst',
            data: [
                {
                    name: '祖父母',
                    children: [
                        {
                            name: '父類別 1',
                            value: 15,
                            children: [
                                { name: '子類別 1', value: 5 },
                                { name: '子類別 2', value: 10 }
                            ]
                        },
                        {
                            name: '父類別 2',
                            value: 10,
                            children: [
                                { name: '子類別 3', value: 10 }
                            ]
                        }
                    ]
                }
            ],
            radius: [0, '90%'],
            label: {
                rotate: '徑向'
            }
        }
    ]
};

 

進階結構技術

太陽射線圖可透過環層級樣式規則、色彩繼承,以及點擊放大互動式下探功能進行自訂。

1. 層級特定環形自訂與下探

使用levels陣列,以定義從中心向外的每一層同心環的獨特半徑、標籤行為與項目樣式:

option = {
    tooltip: {
        trigger: 'item'
    },
    legend: {
        top: '2%',
        left: 'center',
        data: ['電子產品', '家居與生活']
    },
    series: [
        {
            type: 'sunburst',
            center: ['50%', '55%'],
            radius: ['10%', '85%'],
            nodeClick: 'rootToNode', // 點擊節點時啟用下鑽
            levels: [
                {},
                {
                    // 內圈(頂級分類)
                    r0: '15%',
                    r: '40%',
                    label: { rotate: 0, fontWeight: 'bold' },
                    itemStyle: { borderWidth: 2 }
                },
                {
                    // 中圈(子分類)
                    r0: '40%',
                    r: '65%',
                    label: { rotate: 'tangential', fontSize: 11 }
                },
                {
                    // 外圈(葉子產品)
                    r0: '65%',
                    r: '85%',
                    label: { rotate: 'radial', fontSize: 10 }
                }
            ],
            data: [
                {
                    name: '電子產品',
                    children: [
                        {
                            name: '音訊',
                            children: [
                                { name: '耳機', value: 40 },
                                { name: '喇叭', value: 25 }
                            ]
                        },
                        {
                            name: '電腦',
                            children: [
                                { name: '筆電', value: 80 },
                                { name: '桌上型電腦', value: 35 }
                            ]
                        }
                    ]
                },
                {
                    name: '家居與生活',
                    children: [
                        {
                            name: '家具',
                            children: [
                                { name: '椅子', value: 50 },
                                { name: '桌子', value: 30 }
                            ]
                        },
                        {
                            name: '裝飾',
                            children: [
                                { name: '照明', value: 45 },
                                { name: '地毯', value: 20 }
                            ]
                        }
                    ]
                }
            ]
        }
    ]
};

 

微調佈局與標籤對齊

控制標籤旋轉模式(徑向 對比 切向)可確保當扇形區域收窄至外圈時,文字仍保持可讀性。

1. 自訂扇區間隔與徑向標籤

套用項目邊框並設定 rotate: 'radial'以將文字沿扇區半徑整齊對齊:

option = {
    series: [
        {
            type: 'sunburst',
            radius: ['20%', '90%'],
            itemStyle: {
                borderRadius: 4,
                borderColor: '#ffffff',
                borderWidth: 2
            },
            label: {
                show: true,
                rotate: 'radial',
                align: 'right'
            },
            data: [
                {
                    name: '軟體',
                    itemStyle: { color: '#5470c6' },
                    children: [
                        { name: 'SaaS', value: 120 },
                        { name: '本地部署', value: 60 }
                    ]
                },
                {
                    name: '硬體',
                    itemStyle: { color: '#91cc75' },
                    children: [
                        { name: '伺服器', value: 90 },
                        { name: '網路', value: 110 }
                    ]
                },
                {
                    name: '服務',
                    itemStyle: { color: '#fac858' },
                    children: [
                        { name: '顧問', value: 70 },
                        { name: '支援', value: 50 }
                    ]
                }
            ]
        }
    ]
};

 

戰略性最佳實務

  • 根據環層深度匹配標籤旋轉角度: 使用水平(rotate: 0)或切向標籤適用於寬廣的內圈,並切換至 徑向標籤適用於狹窄的外圈扇區。
  • 啟用 nodeClick: 'rootToNode':互動式縮放功能允許使用者點擊任何父弧以直接聚焦於其子樹,避免視覺混亂。
  • 使用色彩繼承:允許子扇區從其父節點繼承基礎色調,並透過調整明暗度/飽和度,以維持各層級之間清晰的視覺分組。
返回頂端