echart关系树状图_Echarts关系图-力引导布局

本文介绍如何使用Echarts实现力引导布局的树状图,通过点击节点实现一级子节点的展开与折叠效果。通过监听Echarts的点击事件,动态改变节点的忽略属性来控制其显示和隐藏,同时展示了代码示例和遇到的问题。
摘要由CSDN通过智能技术生成

需要做一个树形图,可以查看各个人员的关系。

可伸缩的力引导图-失败

刚开始,打算做一个可展开和伸缩的,搜索时候发现CSDN有一篇美美哒程序媛写的Echarts Force力导向图实现节点可折叠。

这里放上前辈的代码

/**

这段代码来自 http://blog.csdn.net/r4NqiAn/article/details/48320487

Echarts-Force

力导向布局图树状结构实现节点可折叠效果

作者:Reese

日期:2015-09-09

版本:V0.1

功能:点击一次节点,展开一级子节点;再次点击节点,折叠所有子孙节点;

弹出最终子节点的标签

备注:在使用该方法的时候,在nodes的属性里要自定义flag属性,并设置ignore*/

var ecConfig = require('echarts/config');functionopenOrFold(param){var linksNodes=[];//中间变量

var data=param.data;//表示当前选择的某一节点

var option = myChart.getOption();//获取已生成图形的Option

var nodesOption=option.series[0].nodes;//获得所有节点的数组

var linksOption=option.series[0].links;//获得所有连接的数组

var categoryLength=option.series[0].categories.length;//获得类别数组的大小

/**

该段代码判断当前节点的category是否为最终子节点,

如果是,则弹出该节点的label*/

if(data.category==(categoryLength-1)){

alert(data.label);

}/**判断是否选择到了连接线上*/

if(data != null && data !=undefined){/**

判断所选节点的flag

如果为真,则表示要展开数据,

如果为假,则表示要折叠数据*/

if(data.flag) {/**

遍历连接关系数组

最终获得所选择节点的一层子节点*/

for(var m inlinksOption){//引用的连接关系的目标,既父节点是当前节点

if(linksOption[m].target==data.id){

linksNodes.push(linksOption[m].source);//获得子节点数组

}

}//for(var m in linksOption){...}

/**

遍历子节点数组

设置对应的option属性*/

if(linksNodes != null && l

要在 Echarts实现世界地发光和设置高亮,可以使用 Echarts 的特效和地组件。 首先,要在 Echarts 中引入地组件和特效组件,可以在 Echarts 的官网下载相应的组件库。然后,通过配置 Echarts 的 option 参数来设置地的样式和特效。 下面是一个简单的示例代码,演示了如何在 Echarts实现世界地发光和设置高亮: ```javascript // 引入地组件和特效组件 echarts.registerMap('world', worldMapData); echarts.registerMap('china', chinaMapData); echarts.registerVisual(echarts.graphic.clipPointsByRect); echarts.registerVisual(echarts.graphic.clipRectByRect); echarts.registerVisual(echarts.graphic.clipPointsByRect); echarts.registerVisual(echarts.graphic.clipRectByRect); echarts.registerVisual(echarts.graphic.clipPointsByRect); echarts.registerVisual(echarts.graphic.clipRectByRect); echarts.registerVisual(echarts.graphic.clipPointsByRect); echarts.registerVisual(echarts.graphic.clipRectByRect); // 配置 option 参数 var option = { tooltip: { show: true, trigger: 'item' }, visualMap: { type: 'piecewise', splitNumber: 6, inverse: true, pieces: [ {min: 10000}, {min: 5000, max: 9999}, {min: 1000, max: 4999}, {min: 500, max: 999}, {min: 100, max: 499}, {max: 99} ], inRange: { color: ['#fef0d9', '#fdcc8a', '#fc8d59', '#e34a33', '#b30000'] } }, series: [ { name: '世界地', type: 'map', mapType: 'world', roam: true, itemStyle: { normal: { areaColor: '#323c48', borderColor: '#111' }, emphasis: { areaColor: '#2a333d', borderColor: '#111', borderWidth: 1 } }, label: { normal: { show: false }, emphasis: { show: false } }, data: [ {name: 'China', value: 100000}, {name: 'United States', value: 20000}, {name: 'Russia', value: 8000}, {name: 'Australia', value: 5000}, {name: 'Canada', value: 1000}, {name: 'Brazil', value: 500}, {name: 'Argentina', value: 200}, {name: 'Chile', value: 100}, {name: 'Mexico', value: 50}, {name: 'India', value: 20}, {name: 'Pakistan', value: 10}, {name: 'Bangladesh', value: 5}, {name: 'Japan', value: 1} ] } ], // 添加特效 graphic: [ { type: 'circle', shape: { cx: 100, cy: 100, r: 50 }, style: { fill: '#fff' }, zlevel: 100 } ] }; ``` 在上面的代码中,我们配置了一个世界地,并且设置了数据值,通过 visualMap 来设置颜色区间和分段数目。在 series 中,我们设置了地的样式和数据,通过 itemStyle 来设置选中时的样式。 最后,我们通过 graphic 参数来添加特效,上面的代码添加了一个圆形特效。您可以根据自己的需求来添加不同的特效效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值