课程表

Echarts 基础教程

Echarts 案例教程

工具箱
速查手册

Echarts 生成旭日图

当前位置:免费教程 » JS/JS库/框架 » Echarts

旭日图(Sunburst)由多层的环形图组成,在数据结构上,内圈是外圈的父节点。因此,它既能像饼图一样表现局部和整体的占比,又能像矩形树图一样表现层级关系。

点此查看一个旭日图的例子>>>

引入相关文件

旭日图是 ECharts 4.0 新增的图表类型,应引入完整版的 echarts.js或者echarts.min.js。

最简单的旭日图

创建旭日图需要在 series 配置项中声明类型为 'sunburst' 的系列,并且以树形结构声明其 data:

  1. var option = {
  2.     series: {
  3.         type: 'sunburst',
  4.         data: [{
  5.             name: 'A',
  6.             value: 10,
  7.             children: [{
  8.                 value: 3,
  9.                 name: 'Aa'
  10.             }, {
  11.                 value: 5,
  12.                 name: 'Ab'
  13.             }]
  14.         }, {
  15.             name: 'B',
  16.             children: [{
  17.                 name: 'Ba',
  18.                 value: 4
  19.             }, {
  20.                 name: 'Bb',
  21.                 value: 2
  22.             }]
  23.         }, {
  24.             name: 'C',
  25.             value: 3
  26.         }]
  27.     }};

在线运行实例


颜色等样式调整

默认情况下会使用全局调色盘 color 分配最内层的颜色,其余层则与其父元素同色。在旭日图中,扇形块的颜色有以下三种设置方式:

  • 在 series.data.itemStyle 中设置每个扇形块的样式;

  • 在 series.levels.itemStyle 中设置每一层的样式;

  • 在 series.itemStyle 中设置整个旭日图的样式。

上述三者的优先级是从高到低的,也就是说,配置了 series.data.itemStyle 的扇形块将会覆盖 series.levels.itemStyle 和 series.itemStyle 的设置。

下面,我们将整体的颜色设为灰色 '#aaa',将最内层的颜色设为蓝色 'blue',将 Aa、B 这两块设为红色 'red'。

  1. var option = {
  2.     series: {
  3.         type: 'sunburst',
  4.         data: [{
  5.             name: 'A',
  6.             value: 10,
  7.             children: [{
  8.                 value: 3,
  9.                 name: 'Aa',
  10.                 itemStyle: {
  11.                     color: 'red'
  12.                 }
  13.             }, {
  14.                 value: 5,
  15.                 name: 'Ab'
  16.             }]
  17.         }, {
  18.             name: 'B',
  19.             children: [{
  20.                 name: 'Ba',
  21.                 value: 4
  22.             }, {
  23.                 name: 'Bb',
  24.                 value: 2
  25.             }],
  26.             itemStyle: {
  27.                 color: 'red'
  28.             }
  29.         }, {
  30.             name: 'C',
  31.             value: 3
  32.         }],
  33.         itemStyle: {
  34.             color: '#aaa'
  35.         },
  36.         levels: [{
  37.             // 留给数据下钻的节点属性
  38.         }, {
  39.             itemStyle: {
  40.                 color: 'blue'
  41.             }
  42.         }]
  43.     }
  44. };

在线运行实例


按层配置样式

旭日图是一种有层次的结构,为了方便同一层样式的配置,我们提供了 levels 配置项。它是一个数组,其中的第 0 项表示数据下钻后返回上级的图形,其后的每一项分别表示从圆心向外层的层级。

例如,假设我们没有数据下钻功能,并且希望将最内层的扇形块的颜色设为红色,文字设为蓝色,可以这样设置:

  1. series: {
  2.     // ...
  3.     levels: [
  4.         {
  5.             // 留给数据下钻点的空白配置
  6.         },
  7.         {
  8.             // 最靠内测的第一层
  9.             itemStyle: {
  10.                 color: 'red'
  11.             },
  12.             label: {
  13.                 color: 'blue'
  14.             }
  15.         },
  16.         {
  17.             // 第二层 ...
  18.         }
  19.     ]
  20. }

在实际使用的过程中,你会发现按层配置样式是一个很常用的功能,能够很大程度上提高配置的效率。


数据下钻

旭日图默认支持数据下钻,也就是说,当点击了扇形块之后,将以该扇形块的数据作为根节点,便于进一步了解该数据的细节。

点此查看一个旭日图数据下钻的例子>>>

当数据下钻后,中间会出现一个用于返回上一层的图形,该图形的样式可以通过 levels[0] 配置。

如果不需要数据下钻功能,可以通过将 nodeClick 设置为 false 关闭;或者将其设为 'link',并将 data.link 设为点击扇形块对应打开的链接。


高亮相关扇形块

旭日图支持鼠标移动到某扇形块时,高亮相关数据块的操作,可以通过设置 highlightPolicy,包括以下几种高亮方式:

  • 'descendant'(默认值):高亮鼠标移动所在扇形块与其后代元素;

  • 'ancestor':高亮鼠标所在扇形块与其祖先元素;

  • 'self':仅高亮鼠标所在扇形块;

  • 'none':不会淡化(downplay)其他元素。

上面提到的“高亮”,对于鼠标所在的扇形块,会使用 emphasis 样式;对于其他相关扇形块,则会使用 highlight 样式。通过这种方式,可以很方便地实现突出显示相关数据的需求。

具体来说,对于配置项:

  1. itemStyle: {
  2.     color: 'yellow',
  3.     borderWidth: 2,
  4.     emphasis: {
  5.         color: 'red'
  6.     },
  7.     highlight: {
  8.         color: 'orange'
  9.     },
  10.     downplay: {
  11.         color: '#ccc'
  12.     }
  13. }

highlightPolicy 为 'descendant' 的效果

highlightPolicy 为'ancestor' 的效果


总结

上面的教程主要讲述的是如何入门使用旭日图,感兴趣的用户可以在官方的 配置项手册 查看更完整的文档。在灵活应用这些配置项之后,就能做出丰富多彩的旭日图了!

转载本站内容时,请务必注明来自W3xue,违者必究。
 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号