一、Echarts Tree的概述
Echarts是一个生动、兼容性强并且提供丰富图表类型的JavaScript图表库。它适用于Web端开发,并可在移动端使用。它支持动态数据更新,既有丰富的扩展插件,又有支持多图表之间的联动效果,可以作为数据可视化的强有力工具。其中Tree(树图)是Echarts中的一种图表类型,它主要用于表达有根节点的树形结构数据。通过浏览器中树形结构的可视化,可以更好的理解树型结构的信息内容。
二、制作Echarts Tree
要制作Echarts Tree,需要先准备好一份数据,该数据需要符合树型结构的数据要求,这里以一个包含人员层级关系的数据为例:
/*
数据结构类似如下
{
"name": "XXX",
"children": [
{
"name": "XXX",
"children": [...]
},
...
]
}
*/
const data = {
"name": "大BOSS",
"children": [
{
"name": "副BOSS1",
"children": [
{"name": "员工1"},
{"name": "员工2"}
]
},
{
"name": "副BOSS2",
"children": [
{"name": "员工3"},
{"name": "员工4"},
{"name": "员工5"}
]
}
]
};
以上数据表示一个公司的组织结构,使用Echarts Tree的图表形式可以构建出高效且生动的组织结构展示图。接下来就要用到Echarts库中的Tree组件了。我们先引入Echarts所需要的JS和CSS:
<script src="https://cdn.jsdelivr.net/npm/echarts/dist/echarts.min.js"></script>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/echarts/dist/echarts.min.css" />
接下来请看下面代码示例,来了解Tree组件的实现过程:
let myChart = echarts.init(document.getElementById('myChart'));
let option = {
tooltip: {
trigger: 'item',
triggerOn: 'mousemove'
},
series: [
{
type: 'tree', // 树形结构
data: [data], // 提供树型数据
left: '2%',
right: '2%',
top: '8%',
bottom: '20%',
symbolSize: 7, // 图形大小调整
label: {
position: 'left',
verticalAlign: 'middle',
align: 'right',
fontSize: 15
},
itemStyle: {
borderColor: '#00bfff',
borderWidth: 2,
shadowColor: '#00bfff',
shadowBlur: 10
},
lineStyle: {
color: '#00bfff',
curveness: 0.5 // 线条的弧度
}
}
]
};
myChart.setOption(option);
这段代码就可以生成一个组织结构树形结构图,它主要实现了ECharts Tree组件的配置。tooplit用于悬浮在图表上时,显示提示的内容。data提供了该组织结构形态的数据。left/right/top/bottom设置的就是图表的位置大小。symbolSize针对每个图形的框架大小。itemStyle可以设置各个图形框架的样式,也可以设置影子。LineStyle设置是关于连线的样式和颜色,有curveness属性可以调整线条的弧度。
三、应用场景
ECharts Tree可以应用于很多场景,如组织架构图、谱系关系图、类目关系图等。下面以组织架构图为例,展示如何使用ECharts的Tree组件展现企业的各部门与员工。假设有以下JSON数据:
const mydata = {
"name": "腾讯",
"children": [
{
"name": "GUANGZHOU",
"children": [
{
"name": "CBG",
"children": [
{"name": "王者荣耀-QC组"},
{"name": "QQ音乐-QC组"},
{"name": "QQ邮箱-QC组"}
]
},
{
"name": "CDG",
"children": [
{"name": "手游APP部门"},
{"name": "微信支付部门"},
{"name": "腾讯新闻部门"}
]
},
{"name": "CHEGHAI"},
{"name": "COLPG"}
]
},
{
"name": "BEIJING",
"children": [
{
"name": "WXG",
"children": [
{"name": "微信开放平台部门"},
{"name": "微信搜索部门"}
]
},
{
"name": "CSAIR",
"children": [
{"name": "雄安新区项目部门"},
{"name": "5G技术研发部门"}
]
},
{"name": "WANGJING"}
]
},
{
"name": "SHENZHEN",
"children": [
{
"name": "TENCENT AMERICA",
"children": [
{"name": "腾讯云部门"},
{"name": "we游戏部门"}
]
},
{
"name": "TENCENT EUROPE",
"children": [
{"name": "财务部门"},
{"name": "人力资源部门"}
]
}
]
}
]
}
可以通过以下代码来实现组织架构图的绘制:
let myChart = echarts.init(document.getElementById('myChart'));
myChart.setOption({
tooltip: {
trigger: 'item',
triggerOn: 'mousemove'
},
series: [{
type: 'tree',
data: [mydata],
left: '2%',
right: '2%',
top: '8%',
bottom: '20%',
symbolSize: 7,
label: {
position: 'left',
verticalAlign: 'middle',
align: 'right',
fontSize: 15
},
itemStyle: {
borderColor: '#00bfff',
borderWidth: 2,
shadowColor: '#00bfff',
shadowBlur: 10
},
lineStyle: {
color: '#00bfff',
curveness: 0.5
}
}]
});
通过以上代码,就可以绘制出一个美观、直观的组织架构图。
四、总结
本文对Echarts Tree进行了详细的介绍。首先,我们了解了ECharts Tree组件的概况,并在实现的过程中,深入了解了各项基本配置的细节,最后,我们以组织架构图为例,说明了Echarts Tree的应用场景。Echarts Tree提供了一个高效、生动的数据展现方式,如果想要让数据在浏览器中可视化,那么Echarts Tree不失为一种优秀的选择。