首页 > 其他分享 >【Echarts】Echarts 关系图 力导图类型配置

【Echarts】Echarts 关系图 力导图类型配置

时间:2022-09-28 09:22:51浏览次数:65  
标签:name data 配置 myChart param Echarts 力导图 true 节点

记录下

效果图

image

配置项

let myChart: any = null;
const categories = [
  {
    name: "错误码",
  },
  {
    name: "原因",
  },
  {
    name: "设备",
  },
  {
    name: "用户操作",
  },
  {
    name: "现象",
  },
];

// 初始化分布图
const initEchrts = () => {
  nextTick(() => {
    if (myChart != null && myChart != "" && myChart != undefined) {
      myChart.dispose(); // 销毁
    }
    const relationData = JSON.parse(JSON.stringify(props.echartsData));
    const el = document.getElementById("echarts")!;
    myChart = echarts.init(el);
    relationData.nodes.forEach((item: any) => {
      item.itemStyle = {
        normal: {
          // color: colorMap[item.label],
          borderColor: colorBorderMap[item.label],
          borderWidth: 3, // 边框
        },
      };
      // 初始化 category
      for (let index = 0; index < categories.length; index++) {
        const element = categories[index];
        if (element.name === labelMap[item.label]) {
          item.category = index;
          break;
        }
      }
    });
    let option = {
      // 鼠标hover的提示语
      tooltip: {
        show: true, //默认值为true
        showContent: true, //是否显示提示框浮层
        trigger: "item", //触发类型,默认数据项触发
        triggerOn: "mousemove", //提示触发条件,mousemove鼠标移至触发,还有click点击触发
        alwaysShowContent: false, //默认离开提示框区域隐藏,true为一直显示
        showDelay: 0, //浮层显示的延迟,单位为 ms,默认没有延迟,也不建议设置。在 triggerOn 为 'mousemove' 时有效。
        hideDelay: 200, //浮层隐藏的延迟,单位为 ms,在 alwaysShowContent 为 true 的时候无效。
        enterable: false, //鼠标是否可进入提示框浮层中,默认为false,如需详情内交互,如添加链接,按钮,可设置为 true。
        position: "right", //提示框浮层的位置,默认不设置时位置会跟随鼠标的位置。只在 trigger 为'item'的时候有效。
        confine: false, //是否将 tooltip 框限制在图表的区域内。外层的 dom 被设置为 'overflow: hidden',或者移动端窄屏,导致 tooltip 超出外界被截断时,此配置比较有用。
        transitionDuration: 0.4, //提示框浮层的移动动画过渡时间,单位是 s,设置为 0 的时候会紧跟着鼠标移动。
        formatter: function (x: any) {
          return x.data.name;
        },
      },
      // 圖表控件
      legend: {
        top: 20,
        left: 20,
        itemWidth: 50,
        itemHeight: 28,
        orient: "vertical",
        selectedMode: false,
        data: categories.map(function (a) {
          return a.name;
        }),
        textStyle: {
          fontSize: 16,
        },
      },
      // 圖表控件对应颜色(索引 01234)
      color: ["#FFB5AF", "#93E3FC", "#CDE8B5", "#E292FE", "#FED9A8"],
      series: [
        {
          type: "graph", // 类型:关系图
          layout: "force", // 图的布局,类型为力导图
          categories: categories, // lengend 关联
          symbolSize: 50, // 调整节点的大小
          roam: true, // 是否开启鼠标缩放和平移漫游。默认不开启。如果只想要开启缩放或者平移,可以设置成 'scale' 或者 'move'。设置成 true 为都开启
          edgeSymbol: ["circle", "arrow"], // 箭头
          edgeSymbolSize: [0.1, 10], // 箭头大小
          force: {
            initLayout: "circular",
            repulsion: 2500, // 节点斥力
            gravity: 0.5, // 所有节点受到的向中心的引力因子。该值越大节点越往中心点靠拢。
            edgeLength: [10, 50], // 边的两个节点之间的距离
            layoutAnimation: false, // 节点动画
          },
          draggable: false, // 节点是否可拖拽,只在使用力引导布局(layout: 'force',)的时候有用
          focusNodeAdjacency: true, // 是否在鼠标移到节点上的时候突出显示节点以及节点的边和邻接节点。
          // 线条样式
          lineStyle: {
            width: 2,
            color: "#555555",
            curveness: 0.3, // 线条的曲线程度,从0到1 ---  不加弧度,两节点互相指向时,线上的字会重叠
            emphasis: {
              //高亮状态
              width: 8,
            },
          },
          // 线上的字体
          edgeLabel: {
            textStyle: {
              fontSize: 12,
              color: "#000000",
            },
            show: true,
            formatter: function (x: any) {
              return lineTextMap[x.data.type];
            },
          },
          // 图形上的文本标签
          label: {
            show: true,
            textStyle: {
              fontSize: 12,
            },
            width: 90,
            overflow: "truncate",
            ellipsis: "...",
          },
          // 数据
          data: relationData.nodes,
          links: relationData.edges,
        },
      ],
    };
    myChart.setOption(option);
    // 监听点击
    myChart.on("click", function (param: any) {
      console.log("param---->", param);
      console.log("点击了", param.data.name, param.data.id, param.data.label);
      if (route.name === "home") {
        router.push({
          path: "details",
          query: { sourceName: param.data.name },
        });
      }
      if (route.name === "fault") {
        emit("nodesClcik", param.data);
      }
    });
  });
};

标签:name,data,配置,myChart,param,Echarts,力导图,true,节点
From: https://www.cnblogs.com/cqkjxxxx/p/16736833.html

相关文章

  • 【保姆级Python入门教程】马哥手把手带你安装Python、安装Pycharm、环境配置教程
    您好,我是@马哥python说,一枚10年程序猿。我的社群中小白越来越多,咨询讨论的问题很多集中在python安装上,故输出此文,希望对大家起步有帮助。下面开始,先安装Python,再安装py......
  • Android SDK下载安装及环境配置
    前面两步,我们已经配置了JDK变量环境,并安装好了Eclipse,通过这两步之后Java的开发环境就准备好了,如果我们只是开发普通的JAVA应用程序的话,那么到这里就可以了。但如果我们要......
  • SpringBoot(概述、起步依赖原理分析、SpringBoot配置(配置文件分类、YAML))
    SpringBoot概述SpringBoot是由Pivotal团队提供用来简化Spring的搭建和开发过程的全新框架。随着近些年来微服务技术的流行,SpringBoot也成了时下炙手可热的热点技......
  • 配置本地yum源,安装network-scripts
    (1).新建配置文件/etc/yum.repos.d/dvd/repo  (2).挂载iOS映像文件(保证/Media文件存在)  (3).清理缓存并建立元数据缓存dnfcleanalldnfmakecache (4).查......
  • 【环境搭建】Anaconda&Pycharm环境配置
    Anaconda&Pycharm环境配置一、Anaconda安装与配置​ Step1:在CMD命令行输入以下两条命令:condaconfig--addchannelshttps://mirrors.tuna.tsinghua.edu.cn/anaconda/p......
  • Echarts自定义提示框案例
    官方文档:#tooltip.formatter两种方法,如trigger:'axis'的情况下,均在tooltip节点下添加如下:1.模板字符串formatter:'<spanstyle="font-size:10px">{b}</span><div......
  • echarts
    //基于准备好的dom,初始化echarts实例varmyChart=echarts.init(document.getElementById('LeftEar'));//指定图表的配置项和数据varoption={......
  • uniapp如何分包 & 分包配置后无法读取static文件夹
    1.为什么会使用uniapp分包?   最近因为使用uniapp做小程序,所以后面在程序发布预览时,经常出现:微信小程序Error系统错误,sourcesize2126KBexceedmaxlimit2MB等问题......
  • Linux回环地址网卡配置修改
    折腾了好久,试了各种方法,才发现直接修改配置文件不行,而且新建con的方法也试了后来发现需要新建一个连接文件修改,原来的那个文件不要动┌──[root@vms152.liruilongs.gith......
  • jenkins配置Linux子节点常见问题
    操作系统:虚拟机安装CentOS-7-x86_64-DVD-1810.isoRemoterootdirectory:/home/admin/jenkinsLaunchmethod:Launchagentbyconnectingittothemaster1.离线安装G......