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

ECharts 创建旭日图很简单,只需要在 series 配置项中声明类型为 sunburst 即可,data 数据结构以树形结构声明,看下一个简单的实例:

var option ={

series: {

type:'sunburst',

data: [{

name:'A',

value:10,

children: [{

value:3,

name:'Aa'}, {

value:5,

name:'Ab'}]

}, {

name:'B',

children: [{

name:'Ba',

value:4}, {

name:'Bb',

value:2}]

}, {

name:'C',

value:3}]

}

};

一、颜色等样式调整

默认情况下会使用全局调色盘 color 分配最内层的颜色,其余层则与其父元素同色。

在旭日图中,扇形块的颜色有以下三种设置方式:在 series.data.itemStyle 中设置每个扇形块的样式。

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

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

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

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

var option ={

series: {

type:'sunburst',

data: [{

name:'A',

value:10,

children: [{

value:3,

name:'Aa',

itemStyle: {

color:'red'}

}, {

value:5,

name:'Ab'}]

}, {

name:'B',

children: [{

name:'Ba',

value:4}, {

name:'Bb',

value:2}],

itemStyle: {

color:'red'}

}, {

name:'C',

value:3}],

itemStyle: {

color:'#aaa'},

levels: [{//留给数据下钻的节点属性

}, {

itemStyle: {

color:'blue'}

}]

}

};

按层配置样式是一个很常用的功能,能够很大程度上提高配置的效率。

二、数据下钻

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

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

var data =[{

name:'Grandpa',

children: [{

name:'Uncle Leo',

value:15,

children: [{

name:'Cousin Jack',

value:2}, {

name:'Cousin Mary',

value:5,

children: [{

name:'Jackson',

value:2}]

}, {

name:'Cousin Ben',

value:4}]

}, {

name:'Father',

value:10,

children: [{

name:'Me',

value:5}, {

name:'Brother Peter',

value:1}]

}]

}, {

name:'Nancy',

children: [{

name:'Uncle Nike',

children: [{

name:'Cousin Betty',

value:1}, {

name:'Cousin Jenny',

value:2}]

}]

}];

option={

series: {

type:'sunburst',//highlightPolicy: 'ancestor',

data: data,

radius: [0, '90%'],

label: {

rotate:'radial'}

}

};

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

三、高亮相关扇形块

旭日图支持鼠标移动到某扇形块时,高亮相关数据块的操作,可以通过设置 highlightPolicy,包括以下几种高亮方式:'descendant'(默认值):高亮鼠标移动所在扇形块与其后代元素;

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

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

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

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

具体来说,对于配置项:

itemStyle: {

color:'yellow',

borderWidth:2,

emphasis: {

color:'red'},

highlight: {

color:'orange'},

downplay: {

color:'#ccc'}

}

highlightPolicy 为 'descendant':

option ={

silent:true,

series: {

radius: ['15%', '95%'],

center: ['50%', '60%'],

type:'sunburst',

sort:null,

highlightPolicy:'descendant',

data: [{

value:10,

children: [{

name:'target',

value:4,

children: [{

value:2,

children: [{

value:1}]

}, {

value:1}, {

value:0.5}]

}, {

value:2}]

}, {

value:4,

children: [{

children: [{

value:2}]

}]

}],

label: {

normal: {

rotate:'none',

color:'#fff'}

},

levels: [],

itemStyle: {

color:'yellow',

borderWidth:2},

emphasis: {

itemStyle: {

color:'red'}

},

highlight: {

itemStyle: {

color:'orange'}

},

downplay: {

itemStyle: {

color:'#ccc'}

}

}

};

setTimeout(function() {

myChart.dispatchAction({

type:'sunburstHighlight',

targetNodeId:'target'});

});

highlightPolicy 为 'ancestor' :

option ={

silent:true,

series: {

radius: ['15%', '95%'],

center: ['50%', '60%'],

type:'sunburst',

sort:null,

highlightPolicy:'ancestor',

data: [{

value:10,

children: [{

value:4,

children: [{

value:2,

children: [{

name:'target',

value:1}]

}, {

value:1}, {

value:0.5}]

}, {

value:2}]

}, {

value:4,

children: [{

children: [{

value:2}]

}]

}],

label: {

normal: {

rotate:'none',

color:'#fff'}

},

levels: [],

itemStyle: {

color:'yellow',

borderWidth:2},

emphasis: {

itemStyle: {

color:'red'}

},

highlight: {

itemStyle: {

color:'orange'}

},

downplay: {

itemStyle: {

color:'#ccc'}

}

}

};

setTimeout(function() {

myChart.dispatchAction({

type:'sunburstHighlight',

targetNodeId:'target'});

});

四、更多实例

echart旭日图_echarts(10):旭日图相关推荐

  1. echart旭日图_echarts之用饼图制作带labelline的旭日图(一)

    前言 如果你想要用较少的代码实现比较酷炫的数据统计表,echarts是值得你考虑的一种实现方式.官网提供了很多实例供参考.并且配置项手册很详细,几乎囊括了所有的绘图需求.但是再全的配置,偶尔也会有不满 ...

  2. echart旭日图_ECharts 旭日图

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

  3. echart旭日图_Echarts的旭日图如何显示tooltip

    犯罪嫌疑人X http://echarts.baidu.com/opti...sunburst没有提供tooltip显示item的name属性,name在data中,所以可以在sunburst.dat ...

  4. echart 动画 饼图_echarts构建关系图,节点可收缩和展开,可添加点击事件

    echarts下载及使用 ECharts,一个使用 JavaScript 实现的开源可视化库,可以流畅的运行在 PC 和移动设备上,兼容当前绝大部分浏览器(IE8/9/10/11,Chrome,Fir ...

  5. echart高级使用_echarts高级入坑

    基本写法 import Vue from 'vue' import echarts from 'echarts' import apkCompile from '@/api/map/apkCompil ...

  6. echart自定义动画_ECharts使用—折线图动态加载

    最近需求中用到折线图,单线条,多线交错,之前是散点图,用的是另一个 amcharts.js,这个文档也能找的到,回归早本次重点:ECharts 一.首先引入echarts.common.min.js文 ...

  7. echart 时间滚动_echarts x,y轴数据太长自动滚动(每次只显示固定数量,定时滚动显示其它)...

    做项目时遇到了一个这样的echarts表,和正常的柱状图没啥区别,但是有个需求就是需要每次只显示10条数据,然后定时滚动显示其它,当滚动到最后一条数据,返回第一条一直循环,这个怎么实现查了好多的例子都 ...

  8. echart仪表盘旋转_Echarts——更改仪表盘方向和颜色

    var panel_agvid= echarts.init(document.getElementById('panel_agvid')); panel_option={ series : [ { n ...

  9. echart 边框线_echarts 饼图给外层加边框

    在series里面再加一个圆,设置他的位置和边框大小即可. data() { return { option: { title: { show: true, text: '项目总数', subtext ...

最新文章

  1. CV之face_recognition:Py之face_recognition库安装、介绍、使用方法详细攻略
  2. (原创)c++中的类型擦除
  3. 【JavaScript】appendChild一个的注意点之会删除原dom树节点
  4. Java学生实训平台_基于jsp的学生实训平台-JavaEE实现学生实训平台 - java项目源码...
  5. CUDA程序kernel函数的运行时间限制
  6. java简单记事本代码_Java实现的简易记事本
  7. 推荐|10本不得不看的算法书籍,挖掘数据的灵魂!
  8. [SAP ABAP开发技术总结]搜索帮助Search Help (F4)
  9. springboot基于安卓的移动数字图书馆的设计与实现毕业设计源码030911
  10. 更改MySQL密码并验证,及使用SQLyog登入MySQ
  11. AD域内禁用所有计算机445端口,勒索病毒“永恒之蓝”变种再来,该如何关闭445端口(收藏)(示例代码)...
  12. 制作一个简单HTML抗疫逆行者网页作业(HTML+CSS)
  13. Error connecting to the target: (Error -6305) PRSC module failed to write to to a register
  14. UnboundID的使用
  15. c200系列服务器主板,主板厂商的曲线救主,E3-1230 v5/技嘉X150-PLUS WS主板评测
  16. 狂神说docker(最全笔记)
  17. 英语计算机单词mp3,[听单词] 计算机专业英语词汇音频51,计算机英语单词MP3
  18. linux-htop详解
  19. CCF-CSP Python Cheat Sheet
  20. 手动脱简单的虚拟机壳(themida)

热门文章

  1. Win10环境下基于Hexo的静态博客环境搭建,及其阿里云部署
  2. 社交媒体视频字幕AE模板 Podcast Badges for After Effects
  3. iOS 自动订阅开发
  4. Android:修改电池容量
  5. AE学习02:时间轴
  6. jvisualvm 连接 docker 监控springboot jvm
  7. 调试绝对值编码器测试角速度值
  8. vue导出excel加一个进度条_vue导出excel遇到的问题解决方法
  9. c 语言字符串查找替换,c ++ - 如何在标准字符串中搜索/查找和替换?
  10. Stronger Data Poisoning Attacks Break Data Sanitization Defenses