vue结合echarts画出关系图

1.在前端页面的路径中安装echarts

cnpm install echarts

2.在main.js中引入echarts(一般安装好了会自动引入)

import echarts from 'echarts'Vue.prototype.$echarts = echarts

3.直接在页面上应用(注释都写上了,数据是临时的)

<template>    <div class="echartLayout">        <div id="container" style="width:100%; height:100%; overflow:hidden;">div>    div>template><script>    import echarts from 'echarts'    export default {        name: "personRelation",        data() {            return {                myChart: null,                chartData: [],                chartLink: [],                colors: [                    "#00ADD0",                    "#FFA12F",                    "#B62AFF",                    "#604BFF",                    "#6E35FF",                    "#002AFF",                    "#20C0F4",                    "#95F300",                    "#04FDB8",                    "#AF5AFF"                ],                color: null,            }        },        mounted() {            this.initEchart()        },        methods: {            initEchart() {                let dom = document.getElementById("container");                // 图表的init                this.myChart = echarts.init(dom);                // 数据填充                this.chartData = this.dataEChart();                // 选项设置                let option = {                    // 关系图                    type: "tree",                    // 全图默认背景                    // backgroundColor: "#000",                    backgroundColor: "#2F4F4F",                    //工具栏                    toolbox: {                        // 是否显示                        show: true,                        iconStyle: {                            borderColor: "#03ceda"                        },                        feature: {                            restore: {}                        }                    },                    //提示框                    tooltip: {                        // 触发类型,默认数据触发,可选为:'item' ¦ 'axis'                        trigger: "item",                        // 触发时机                        triggerOn: "mousemove",                        // rgba 颜色设置                        backgroundColor: "rgba(1,70,86,1)",                        borderColor: "rgba(0,246,255,1)",                        borderWidth: 0.5,                        textStyle: {                            fontSize: 10                        }                    },                    // 标记线、标记点                    series: [                        {                            type: "tree",                            // 是否开启鼠标 hover 的提示动画效果                            hoverAnimation: false,                            // 数据                            data: this.dataEChart(),                            // 样式                            top: 0,                            bottom: 0,                            left: 0,                            right: 0,                            // 图的布局,类型为力导图,'radial' 采用环形布局,'force' 采用左右布局(左是根数据)                            layout: "radial",                            // 关系图节点标记的图形。ECharts 提供的标记类型包括 'circle'(圆形), 'rect'(矩形), 'roundRect'(圆角矩形), 'triangle'(三角形), 'diamond'(菱形), 'pin'(大头针), 'arrow'(箭头)                            // 也可以通过 'image://url' 设置为图片,其中 url 为图片的链接。'path:// 这种方式可以任意改变颜色并且抗锯齿                            symbol: "circle",                            // 也可以用数组分开表示宽和高,例如 [20, 10] 如果需要每个数据的图形大小不一样,可以设置为如下格式的回调函数:(value: Array|number, params: Object) => number|Array                            symbolSize: 10,                            nodePadding: 20,                            // 数据更新动画的时长,默认300                            animationDurationUpdate: 750,                            // 子树折叠和展开的交互,默认打开                            expandAndCollapse: true,                            // 默认:2,树图初始展开的层级(深度)。根节点是第 0 层,然后是第 1 层、第 2 层,... ,直到叶子节点                            initialTreeDepth: 2,                            // 是否开启鼠标缩放和平移漫游。scale/move/true                            roam: true,                            // 是否在鼠标移到节点上的时候突出显示节点以及节点的边和邻接节点                            focusNodeAdjacency: true,                            // 图形样式,有 normal 和 emphasis 两个状态。normal 是图形在默认状态下的样式;emphasis 是图形在高亮状态下的样式,比如在鼠标悬浮或者图例联动高亮时。                            itemStyle: {                                borderWidth: 1,                            },                            //标签样式                            label: {                                color: "#fff",                                fontSize: 10,                                fontFamily: "SourceHanSansCN",                                position: "inside",                                rotate: 0,                            },                            // 关系边的公用线条样式                            lineStyle: {                                /*width: 1,                                curveness: 0.5,*/                                color : 'rgba(255,0,255,0.4)',                                width : '2',                                // 线的类型 'solid'(实线)'dashed'(虚线)'dotted'(点线)                                type : 'dashed',                                // 线条的曲线程度,从0到1                                curveness : 0.2,                                // 图形透明度。支持从 0 到 1 的数字,为 0 时不绘制该图形。默认0.5                                opacity : 1                            }                        }                    ]                };                this.myChart.setOption(option);                this.myChart.on('click', function (params) {                    //获取点击的头像的数据信息                    console.log(params.data)                });            },            /**             * 数据集合             */            dataEChart() {                let data = {                    name: "根节点1",                    value: 0,                    children: []                };                for (let i = 1; i <= 10; i++) {                    let obj = {                        name: "节点" + i,                        value: i,                        children: [],                    };                    for (let j = 1; j <= 5; j++) {                        let obj2 = {                            name: `节点1-${i}-${j}`,                            value: 1 + "-" + i + "-" + j,                        };                        if (j % 2 == 1) {                            obj2.children = []                            for (let k = 1; k <= 3; k++) {                                let obj3 = {                                    name: `节点1-${i}-${j}-${k}`,                                    value: 1 + "-" + i + "-" + j + '-' + k,                                };                                obj2.children.push(obj3);                            }                        }                        obj.children.push(obj2);                    }                    data.children.push(obj);                }                let arr = []                arr.push(data)                //                arr = this.handleData(arr, 0)                console.log(arr);                return arr;            },            // 事件处理            handleData(data, index, color = '#00f6ff') {                //index标识第几层                return data.map((item, index2) => {                    //计算出颜色                    if (index == 1) {                        color = this.colors.find((item, eq) => eq == index2 % 10);                    }                    // 设置节点大小                    if (index === 0 || index === 1) {                        item.label = {                            position: "inside",                            //   rotate: 0,                            //   borderRadius: "50%",                        }                    }                    // 设置label大小                    switch (index) {                        case 0:                            item.symbolSize = 70                            break;                        case 1:                            item.symbolSize = 50                            break;                        default:                            item.symbolSize = 10                            break;                    }                    // 设置线条颜色                    item.lineStyle = {color: color}                    if (item.children) {//存在子节点                        item.itemStyle = {                            borderColor: color,                            color: color                        };                        item.children = this.handleData(item.children, index + 1, color)                    } else {// 不存在                        item.itemStyle = {                            color: 'transparent',                            borderColor: color                        };                    }                    return item                })            },        }    }script><style scoped>    .echartLayout {        margin: auto;        position: absolute;        top: 0;        left: 0;        bottom: 0;        right: 0;    }style>

echarts 获取点击的y轴数值_ECharts关系图相关推荐

  1. echarts 获取点击的y轴数值_四川Y轴前后钢板防护罩哪里卖

    四川Y轴前后钢板防护罩哪里卖 沧州越进机床附件有限公司为机床附件专业生产单位,集开发.设计.制造销售于一体.是机床附件.防护罩装置生产历史较早.专业性较强.技术力量雄厚,国内规模较大企业.我公司依靠科 ...

  2. echarts 获取点击的y轴数值_有机磷酸催化对醌的不对称直接加成反应合成轴手性芳基醌类化合物...

    有机磷酸催化对醌的不对称直接加成反应合成轴手性芳基醌类化合物 本文作者:Summer 轴手性联芳基二醇骨架广泛存在于天然产物.生物活性分子.有用的手性配体以及催化剂中(Figure 1a),因此,轴手 ...

  3. echarts 获取点击的y轴数值_静音导轨轴厂家定做-福建 - 福州机械及行业设备

    双轴心直线导轨在业内也称为双轴心导轨,初是由德国研发的一种导轨,导轨滑块和滚轮相互配合都是一体的.双轴心分为内置双轴心和外置双轴心,外置就是导轨滑块在导轨的外面,内置就是导轨滑块在导轨的内部,两者优点 ...

  4. echarts 获取点击的y轴数值_用 Python 自动获取NBA现役球员的职业生涯数据曲线

    前言 作为一个看了多年篮球的 NBA球迷,一直在想用 python 和篮球一起来写点什么 加上最近在学习 pyecharts ,所以就有了下面这篇文章: 根据输入的球队和球员名字,自动生成该球员职业生 ...

  5. echarts折线图不显示y轴值_Echarts 折线图y轴标签值太长时显示不全的解决办法

    问题 先看一下正常的情况 再看一下显示不全的情况 所有的数据都是从后台取的,也就是说动态变化的,一开始的时候数据量不大不会出现问题,后面y轴的值越来越大的时候就出现了这个显示不全的情况. 分析 先贴一 ...

  6. echart 折线图设置y轴单位_echarts折线图有两个图例时如何实现分别采用两个不同单位的y轴...

    (1)做法为在series中添加yAxisIndex: 1,这个就可以,默认为yAxisIndex: 0, (2)下面贴出来完整的代码 option = { backgroundColor : 'rg ...

  7. echarts 柱状图隐藏x、y轴坐标轴、刻度线、隐藏x、y轴坐标轴的数值

    echarts 柱状图隐藏x.y轴的内容,隐藏x,y轴坐标轴.刻度线.隐藏x.y轴坐标轴的数值 1.隐藏x轴坐标轴,在xAxis下使用axisLine属性为false,相反显示则是true axisL ...

  8. echarts折线图怎么从y轴开始_基于echarts的双y轴实时更新折线图

    一款基于echarts的双y轴实时更新折线图效果,页面加载后开始自动更新数据并绘制对应的折线图,可以点击右上角的按钮:显示数据视图.刷新数据和将数据存储为png的图片. 查看演示 下载资源: 46 次 ...

  9. Python使用matplotlib函数subplot可视化多个不同颜色的折线图、使用set_major_formatter函数自定义设置y轴数值标签格式为百分比

    Python使用matplotlib函数subplot可视化多个不同颜色的折线图.使用set_major_formatter函数自定义设置y轴数值标签格式为百分比 目录

  10. excel 2010 指定x轴y轴数据 画折线图

    下面的方法肯定不是正规军,但是实现了功能-. 先填充x,y轴数据 插入 - 折线图 -第一个(举例) 下面出现的图不是我们想要的x轴数据!!! 下面看仔细-.haha 右键图表, "选择数据 ...

最新文章

  1. MS_SQL_获取字符串最后出现的字符串及位置
  2. 九种浏览器端缓存机制知多少(转)
  3. spring jms同时使用queue和持久topic订阅
  4. 《终身成长》读书笔记(part4)--创造性并不是出自灵感的神奇行为,而是努力工作和倾情奉献的结果
  5. idea资源包下创建资源包_资源包技巧和最佳实践
  6. HTTP 错误 404.2 - Not Found 由于 Web 服务器上的“ISAPI 和 CGI 限制”列表设置,无法提供您请求的页面 详细错误:HTTP 错误...
  7. openoffice 安装 linux环境
  8. 开发中常用到的通用 scss 模块
  9. DemocracyOS促进双方的公民参与
  10. 守得云开见月明:一次ASM存储高可用故障解决过程分析
  11. ASP.NET文件上传的三种基本方法
  12. python前端工资_前端的工资分布情况-你又拖后退了吗?
  13. 【MFC】如何使用MFC?MFC如何编写界面?MFC使用零基础教程
  14. VC++内存泄漏检测工具VLD使用方法
  15. android手机刷ios6,iOS8.4降级6.1.3教程 iPhone4s降级iOS6.1.3
  16. 玩游戏降频?跑分不行?给你的CPU降降压,提提速!
  17. DirectX11学习笔记五 摄像机类
  18. GoLang之什么是CSP(1)
  19. GAN的一些经典网络的基本思想
  20. 多设备时设置default serial的方法

热门文章

  1. sql中exists与in的区别
  2. CC-Python-文件操作
  3. android-handler、looper、messageQueue、message
  4. phpmyadmin提示SELECT `prefs` FROM `phpmyadmin`.`pma_table_uiprefs` ······
  5. 基于visual Studio2013解决面试题之0202上下排
  6. Hadoop 参数配置优化
  7. [Java基础]StringUtils.join()方法与String.join()方法的使用
  8. Thinking in Java 9.6 适配接口
  9. 百度地图,你必须知道的自定义Marker图标方法
  10. Java神鬼莫测之MyBatis--各类数据库like字段使用方式(一)