欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 新闻 > 焦点 > echarts树图

echarts树图

2024/11/30 6:03:18 来源:https://blog.csdn.net/Z18834071903/article/details/144129944  浏览:    关键词:echarts树图
 <div id="brinsonTreeChart" ref="brinsoTreeChartRef" style="width: 100%; height: 250px;"></div>
data () {return {// treeData: null,treeData: {"name": "基金收益","returnRate": "58.84","type": "root","children": [{"name": "基准收益率","returnRate": "20.64","type": "sub","children": []},{"name": "超额收益","returnRate": "38.21","type": "sub","children": [{"name": "行业配置","returnRate": "38.34","type": "final","children": []},{"name": "个股选择","returnRate": "-21.64","type": "final","children": []},{"name": "交互项","returnRate": "21.50","type": "final","children": []}]}]}}},mounted() {this.initTreeChart()},methods: {
initTreeChart () {var chartDom = document.getElementById('brinsonTreeChart');this.chart = echarts.init(chartDom);let option if (!this.treeData) {option = {title: {text: '暂无数据',x: 'center',y: 'center',textStyle: {fontSize: 14,fontWeight: 'normal',}}}} else {option = {tooltip: {// show: false,trigger: 'item',triggerOn: 'mousemove',color: '#fff',backgroundColor: 'rgba( 0, 0, 0,0.7)',borderColor: 'rgba( 0, 0, 0,0.7)',formatter: function(params) {// console.log(params,'params----------');let str = ''str = `<span style='color: #fff;'>${params.data.name}:  ${params.data.returnRate}%</span>`return str;}},series: [{type: 'tree',data: this.recursionFun([this.treeData]),layout: 'orthogonal', // 正交布局(水平 和 垂直)orient: 'TB', // 只有 layout = 'orthogonal' 的时候,该配置项才生效。取值分别为 从左到右('LR') , 从右到左('RL'), 从上到下('TB'), 从下到上('BT')。配置项值 'horizontal' 等同于 'LR', 'vertical' 等同于 'TB'// orient: 'vertical', // 树整体的方向,horizontal 横向;vertical 竖向nodePadding: 20, // nodePadding的数组值为[10, 20],表示第一层节点与第二层节点之间的水平间距为10,垂直间距为 20; 发现不起作用!!!layerPadding: 40,  // 发现不起作用!!!edgeShape: 'polyline', // 设置连接线曲线还是折线,默认情况下是曲线,curve曲线 polyline直线symbol: 'none', // 节点标记形状 roundRect、rect// symbolSize: [120, 60], // 设置框的大小// symbolSize: 80, // 设置框的大小// left: '2%',// right: '2%',// top: '2%',// bottom: '20%',initialTreeDepth: 10, // 默认树展开的层数// 线条的颜色lineStyle: {color: '#ccc',type: 'solid',width: 2,},label: {show: true,position: 'inside',verticalAlign: 'middle',align: 'center',// width: 80,overflow: 'truncate',ellipsis: '...',formatter: function(params) {// console.log(params,'params----------');return `{name|${params.data.name}}` + '\n' + `{returnRate|${params.data.returnRate + '%'}}`},rich: {name: {color: '#fff',fontSize: 13,align: 'center',lineHeight: 35,padding: [0, 3]},returnRate: {color: '#fff',fontSize: 13,align: 'center',lineHeight: 5,},},},expandAndCollapse: true, // 子树折叠和展开的交互,默认打开animationDuration: 550, // 初始动画的时长animationDurationUpdate: 750, // 数据更新动画的时长}],  }}this.chart.setOption(option,true);},// 递归处理树图数据recursionFun(data) {for (let i = 0; i < data.length; i++) {// 根据level标识符判断if (data[i].type === 'root') {data[i].label = {width: 80,height: 50,backgroundColor: '#5391db',borderRadius: 5,fontSize: 15,}} else if (data[i].type === 'sub') {data[i].label = {width: 80,height: 50,backgroundColor: '#e2835a',borderRadius: 5,}} else if (data[i].type === 'final') {data[i].label = {width:80,height: 50,backgroundColor: '#D9A41F',borderRadius: 5,}} else {}if (data[i].children && data[i].children.length > 0) {this.recursionFun(data[i].children);}}return data;},
}

效果图:
在这里插入图片描述

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com