html echarts饼状图_echarts环形图

html echarts饼状图_echarts环形图ECharts旭日图旭日图(Sunburst)由多层的环形图组成,在数据结构上,内圈是外圈的父节点。因此,它既能像饼图一样表现局部和整体的占比,又能像矩形树图一样表现层级关系。ECharts创建旭日图很简单,只需要在series配置项中声明类型为sunburst即可,data数据结构以树形结构声明,看下一个简单的实例:实例varoption={series:{type:’s…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

ECharts 旭日图

旭日图(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’

});

});

尝试一下 »

更多实例

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/189206.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • HTTP.sys远程代码执行漏洞修复

    HTTP.sys远程代码执行漏洞修复1.漏洞描述Http.sys是MicrosoftWindows处理HTTP请求的内核驱动程序。HTTP.sys会错误解析某些特殊构造的HTTP请求,导致远程代码执行漏洞。成功利用此漏洞后,攻击者可在System帐户上下文中执行任意代码。由于此漏洞存在于内核驱动程序中,攻击者也可以远程导致操作系统蓝屏。此次受影响的系统中,Windows7、Windows8、WindowsServer2008R2和WindowsServer2012所带的HTTP.sys驱动均存在一个远程代码执行漏洞,远程攻击者可以通

    2022年7月18日
    14
  • clientheight什么意思_document.body.clientheight

    clientheight什么意思_document.body.clientheight转载自:https://www.imooc.com/article/17571网页可见区域高:document.body.clientHeight网页正文全文高:document.body.scrollHeight网页可见区域高(包括边线的高):document.body.offsetHeight网页被卷去的高:document.body.scrollTop屏幕分辨率高:window.s…

    2022年9月3日
    2
  • 关于后台动态模板添加内容的总结 Builder使用

    关于后台动态模板添加内容的总结 Builder使用

    2021年10月21日
    41
  • Oracle11g安装详细步骤(图文教程)

    Oracle11g安装详细步骤(图文教程)Oracle11g是J2EE初学者必学的数据库之一,下面就给大家介绍一下Oracle11g数据库的详细安装步骤。第一步:打开Oracle中文官网下载Oracle11g打开Oracle中文官网点击导航中的下载,找到数据库下载链接打开链接后,选择同意协议选项,并在下方找到Oracle11g的下载列表选择对应的版本进行下载,需要将File1和File2两个文件都下载下来第二步:解压文件,以

    2022年7月25日
    12
  • 多服务器共享session的方法

    多服务器共享session的方法伴随网站业务规模和访问量的逐步发展,原本由单台服务器、单个域名的迷你网站架构已经无法满足发展需要。此时我们可能会购买更多服务器,并且启用多个二级子域名以频道化的方式,根据业务功能将网站分布部署在独立的服务器上;或通过负载均衡技术(如:DNS轮询、Radware、F5、LVS等)让多个频道共享一组服务器。OK,头脑中我们已经构思了这样的解决方案,不过进入深入开发后新的技术问题又随之…

    2022年6月13日
    28
  • ES6 json转map map转json

    ES6 json转map map转json1、json转map<script>letjson={“name”:”ES6″,”day”:”2014″,”feature”:”新特性”}; //json2map letmap=newMap(); for(letiinjson){ map.set(i,json[i]); } console.log(map);</script…

    2022年6月15日
    28

发表回复

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

关注全栈程序员社区公众号