Echarts实例教程之树形图表的实现方法

 更新时间:2021年08月06日 15:02:56   作者:tntxia  
众所周知echarts是一个纯JavaScript的图标库,下面这篇文章主要给大家介绍了关于Echarts实例之树形图表的实现方法,需要的朋友可以参考下

树图主要用来可视化树形数据结构,是一种特殊的层次类型。

实现方法,将series->type设置为tree。

Echarts的树形图表,可以是正交的,也可以是径向的。

正交树:

径向树:

实现方法,修改:series->layout设置,orthogonal为正向,radial为径向。

可以自定义,如从右向左:

实现方法,修改:series->orient设置,支持LR、RL、TB、BT,其中RL,就是从右向左。

可以自定义图标:支持'circle', 'rect', 'roundRect', 'triangle', 'diamond', 'pin', 'arrow', 'none'

实现方法,修改:series->symbol设置

图标是方形的树形图表:

可以自定义,直线还是曲线:

实现方法,修改:series->edgeShape设置,支持curve 和 polyline

直线图表:

initialTreeDepth:

默认展开的深度,默认为2,多于2层的的节点可以点击父节点来展示和隐藏。如果设置为 -1 或者 null 或者 undefined,所有节点都将展开。

itemStyle:

修改树形图表项的样式。

可以修改颜色、大小等

label:

图表项中文字的处理。

可以通过formatter来给图表的文字增加丰富的效果。

lineStyle:

图表中线的处理。

修改lineStyle样式的效果:

emphasis: 聚焦,设置了聚焦后,鼠标放到项,其他无关项就会暂时隐藏。

'none' 不淡出其它图形,默认使用该配置。

'self' 只聚焦(不淡出)当前高亮的数据的图形。

'series' 聚焦当前高亮的数据所在的系列的所有图形。

'ancestor' 聚焦所有祖先节点

'descendant' 聚焦所有子孙节点

emphasis: {
    focus: 'ancestor',
    blurScope: 'coordinateSystem'
}

树形图表的数据结构:

name: 图表项默认项显示的名称

children: 这个项的子节点

当然,你在数据里可以定义任意属性,如value、num等,可以配合label中的formatter来实现更加丰富的显示效果。

最后是完整的代码:

index.html

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Echarts实例 - 图例</title>
    <script src="../../echarts.js"></script>
</head>

<body>
    <div id="container" style="width: 500px;height:500px;">

    </div>
    <script src="./index.js"></script>
</body>

</html>

index.js

var chart = echarts.init(document.getElementById("container"));

var data = {
    name: 'Throwable',
    children: [{
        name: 'Error',
        children: [{
            name: 'VirtualMachineError',
            children: [{
                name: 'StackOverflowError'
            }, {
                name: 'OutOfMemoryError'
            }]
        }, {
            name: 'AWTError'
        }]
    }, {
        name: 'Exception'
    }]
}


var data2 = {
    name: '龙珠人物',
    children: [{
        name: '孙悟空'
    }, {
        name: '布尔玛'
    }, {
        name: '猪悟能'
    }, {
        name: '雅木茶'
    }, {
        name: '龟仙人'
    }, {
        name: '小林'
    }, {
        name: '短笛'
    }, {
        name: '鹤仙人'
    }, {
        name: '天津饭'
    }, {
        name: '饺子'
    }]
}

chart.setOption({
    title: {
        text: 'Java异常结构图'
    },
    series: [{
        layout: 'orthogonal',
        data: [data],
        right: '60%',
        type: 'tree',
        edgeShape: 'polyline', // curve 和 polyline
        symbol: 'rect', // 'circle', 'rect', 'roundRect', 'triangle', 'diamond', 'pin', 'arrow', 'none',
        initialTreeDepth: 2,
        itemStyle: {
            color: 'cyan'
        },
        lineStyle: {
            color: 'red'
        },
        /**
         * 
         * 
         * 'none' 不淡出其它图形,默认使用该配置。
'self' 只聚焦(不淡出)当前高亮的数据的图形。

'series' 聚焦当前高亮的数据所在的系列的所有图形。

'ancestor' 聚焦所有祖先节点
'descendant' 聚焦所有子孙节点
         */
        emphasis: {
            focus: 'ancestor',
            blurScope: 'coordinateSystem'
        },
    }, {
        layout: 'radial',
        left: '60%',
        data: [data2],
        type: 'tree',
        symbol: 'rect',
        symbolSize: 15
    }]
})

总结

到此这篇关于Echarts实例教程之树形图表实现的文章就介绍到这了,更多相关Echarts实现树形图表内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 详解webpack自动生成html页面

    详解webpack自动生成html页面

    本篇文章主要介绍了详解webpack自动生成页面,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-06-06
  • layui复选框的全选与取消实现方法

    layui复选框的全选与取消实现方法

    今天小编就为大家分享一篇layui复选框的全选与取消实现方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-09-09
  • Bootstrap CSS组件之导航(nav)

    Bootstrap CSS组件之导航(nav)

    这篇文章主要为大家详细介绍了Bootstrap CSS组件之导航(nav),具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-12-12
  • JavaScript实现点击改变图片形状(transform应用)

    JavaScript实现点击改变图片形状(transform应用)

    这篇文章主要为大家详细介绍了JavaScript实现点击改变图片形状,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-04-04
  • JS Thunk 函数的含义和用法实例总结

    JS Thunk 函数的含义和用法实例总结

    这篇文章主要介绍了JS Thunk 函数的含义和用法,结合实例形式总结分析了JS Thunk 函数的具体含义、用法及操作注意事项,需要的朋友可以参考下
    2020-04-04
  • javascript实现简单的省市区三级联动

    javascript实现简单的省市区三级联动

    本文给大家反映的是javascript实现的简单的省市区三级联动特效,不需要访问后台服务器端,不使用Ajax,无刷新,纯JS实现的省市区三级联动。当省市区数据变动是只需调正js即可。
    2015-05-05
  • 微信小程序开发之数据存储 参数传递 数据缓存

    微信小程序开发之数据存储 参数传递 数据缓存

    本文主要介绍了微信小程序开发之数据存储、参数传递、数据缓存的相关知识。具有很好的参考价值。下面跟着小编一起来看下吧
    2017-04-04
  • JS实现点击复选框变更DIV显示状态的示例代码

    JS实现点击复选框变更DIV显示状态的示例代码

    下面小编就为大家分享一篇JS实现点击复选框变更DIV显示状态的示例代码,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2017-12-12
  • 微信小程序页面间传值的实现方法示例

    微信小程序页面间传值的实现方法示例

    这篇文章主要给大家介绍了关于微信小程序页面间传值的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-04-04
  • input输入框的自动匹配(原生代码)

    input输入框的自动匹配(原生代码)

    功能要求:使用原生代码实现,不可使用任何框架、只针对英文字符进行匹配,并且匹配到的内容在菜单中加粗、通过键盘上的上下箭头可以对菜单进行选择等等,感兴趣的你可以参考下
    2013-03-03

最新评论