ECharts 旭日图

ECharts 旭日图(Sunburst Chart)教程

ECharts 的旭日图(series.type = ‘sunburst’)是一种多层级放射状图表,适合展示层次结构数据(如组织架构、文件目录、分类占比)。它从中心向外辐射,每层代表一个级别,扇区大小根据 value 决定,支持交互钻取(点击进入子层)。

1. 基础旭日图示例

以下是一个三级层次的简单旭日图,直接复制到 HTML 文件运行。

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="utf-8">
    <title>ECharts 旭日图示例</title>
    <script src="https://cdn.jsdelivr.net/npm/echarts/dist/echarts.min.js"></script>
</head>
<body>
    <div id="main" style="width: 800px; height: 800px;"></div>
    <script>
        const myChart = echarts.init(document.getElementById('main'));
        const option = {
            title: {
                text: 'ECharts 旭日图示例',
                left: 'center'
            },
            tooltip: {
                trigger: 'item',
                formatter: '{b}: {c}'
            },
            series: {
                type: 'sunburst',
                radius: [0, '90%'],  // 内径0,外径90%
                label: {             // 显示标签
                    rotate: 'radial',  // 径向旋转
                    show: true
                },
                itemStyle: {
                    borderRadius: 8, // 圆角
                    shadowBlur: 10
                },
                emphasis: {          // 高亮
                    focus: 'descendant'  // 高亮当前及子节点
                },
                data: [{
                    name: '根节点',
                    value: 100,
                    children: [{
                        name: '一级A',
                        value: 40,
                        children: [
                            { name: '二级A1', value: 20 },
                            { name: '二级A2', value: 20 }
                        ]
                    }, {
                        name: '一级B',
                        value: 60,
                        children: [
                            { name: '二级B1', value: 30 },
                            { name: '二级B2', value: 30 }
                        ]
                    }]
                }]
            }
        };
        myChart.setOption(option);
    </script>
</body>
</html>

2. 关键配置项(series-sunburst)

配置项说明
data树状数组:{ name, value, children: […] }
radius[‘内径%’, ‘外径%’] 或 [0, ‘90%’]
center中心位置 [‘50%’, ‘50%’]
label标签显示:show/rotate (‘tangential’ 切向 / ‘radial’ 径向)
itemStyle扇区样式:borderRadius、borderWidth、shadow 等
levels自定义每层样式(高级)
emphasis.focus‘self’(仅自身) / ‘descendant’(子孙) / ‘ancestor’(祖先)
highlightPolicy‘descendant’ 等,控制高亮行为
downplay退出高亮时样式

3. 高级技巧

  • 钻取交互:默认点击进入子层,点击中心返回上级。结合事件监听可自定义钻取。
  • 圆角效果:itemStyle.borderRadius 支持数组 [内上, 外上, 外下, 内下]。
  • 视觉映射:结合 visualMap 根据 value 映射颜色/大小。
  • 动画:animation: true,支持淡入、展开动画。

更多示例和配置,推荐官方:

  • 基础旭日图:https://echarts.apache.org/examples/zh/editor.html?c=sunburst-simple
  • 手册:https://echarts.apache.org/zh/option.html#series-sunburst

如果你需要多层数据示例、钻取事件处理、圆角样式或其他自定义(如添加图例),告诉我,我可以给出完整代码!

文章已创建 4391

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

相关文章

开始在上面输入您的搜索词,然后按回车进行搜索。按ESC取消。

返回顶部