echarts关系图name重复问题

     xydata = [[2, 4],
              [6, 7],
              [0, 1], 
              [1, 2],
              [2, 7], 
              [1, 4], 
              [4, 5],
              [5, 6],
              [3, 4 ]];
      dataArr =[
            { id:0,"name": "name1", "category": 0 },
            {id:1, "name": "name2", "category": 1 },
            {id:2, "name": "name3", "category": 1},
            {id:3, "name": "name1", "category": 1 },
            { id:4,"name": "name2", "category": 1},
            {id:5, "name": "name3", "category": 1 },
            {id:6, "name": "name4", "category": 1 }, 
            {id:7, "name": "name5", "category": 1}]
 
        dataArr = dataArr.map((value, index) => {
            value.showName = value.name;
            value.name = index;
            return value;
        })
 
 
        var links = xydata.map(function (item, i) {
                return {
                    source:xydata[i][0],
                    target: xydata[i][1],
                };
        });
  option = {
    tooltip: {
        show: false
    },
    legend: {
        x: "center",
        data: ["family", "suite"]
    },
    animation: false,
    series: [{
        categories: [{
            name: 'family',
            itemStyle: {
                normal: {
                    color: "#009800",
                }
            }
        }, {
            name: 'suite',
            itemStyle: {
                normal: {
                    color: "#4592FF",
                }
            }
        }],
        type: 'graph',
        layout: 'force',
        symbol: "circle",
        symbolSize: 50,
        roam: true, //禁止用鼠标滚轮缩小放大效果
        edgeSymbol: ['circle', 'arrow'],
        edgeSymbolSize: [0, 10],
        // 连接线上的文字
        focusNodeAdjacency: true, //划过只显示对应关系
        // 圆圈内的文字
        label: {
            normal: {
                show: true,
                formatter: function(params){
                    return params.data.showName
                }
            }
        },
        force: {
            repulsion: 5000
        },
        data: dataArr,
        links:links
        
    }]
  }

2. 第二种方法,给每个data数据中放一个id,效果跟上图一样(推荐)

    代码如下:

     
      xydata = [[2, 4],
            [6, 7],
            [0, 1], 
            [1, 2],
            [2, 7], 
            [1, 4], 
            [4, 5],
            [5, 6],
            [3, 4 ]];
      dataArr =[
            { id:0,"name": "name1", "category": 0 },
            {id:1, "name": "name2", "category": 1 },
            {id:2, "name": "name3", "category": 1},
            {id:3, "name": "name1", "category": 1 },
            { id:4,"name": "name2", "category": 1},
            {id:5, "name": "name3", "category": 1 },
            {id:6, "name": "name4", "category": 1 }, 
            {id:7, "name": "name5", "category": 1}]
 
      var links = xydata.map(function (item, i) {
                return {
                    source:xydata[i][0],
                    target: xydata[i][1],
                };
        });
  option = {
    tooltip: {
        show: false
    },
    legend: {
        x: "center",
        data: ["family", "suite"]
    },
    animation: false,
    series: [{
        categories: [{
            name: 'family',
            itemStyle: {
                normal: {
                    color: "#009800",
                }
            }
        }, {
            name: 'suite',
            itemStyle: {
                normal: {
                    color: "#4592FF",
                }
            }
        }],
        type: 'graph',
        layout: 'force',
        symbol: "circle",
        symbolSize: 50,
        roam: true, //禁止用鼠标滚轮缩小放大效果
        edgeSymbol: ['circle', 'arrow'],
        edgeSymbolSize: [0, 10],
        // 连接线上的文字
        focusNodeAdjacency: true, //划过只显示对应关系
        // 圆圈内的文字
        label: {
            normal: {
                show: true,
                formatter: function(params){
                    return params.data.name
                }
            }
        },
        force: {
            repulsion: 5000
        },
        data: dataArr,
        links:links
        
    }]
  }

 注:在关系图中,如果是force布局,这两种方式是没有问题的,如果是layout: 'none',自己定位置的话,这两种方法就不可以了,鼠标移上去的效果就没有了。

本文参考:https://blog.csdn.net/qq_34790644/article/details/107021175

在使用Echarts绘制折线时,可以通过设置name属性来指定折线名称位置。根据提供的引用内容,可以看出name属性是在Vue组件中使用的,用于指定表的名称。在给定的代码中,name属性被设置为一个空字符串,即没有指定具体的位置。 要更改name属性的位置,可以在Vue组件中的name属性下添加相应的配置选项。可以使用Echarts的legend属性配置来调整图例的位置,用grid属性配置来调整表的上下左右边缘距离。这样可以通过调整图例表的布局来达到调整name位置的效果。 具体的配置选项可以根据需求进行调整,例如将legend位置设置为top或bottom,将grid属性中的top和bottom值调整为合适的数值。这样就可以更改name属性的位置,使其在表中的相应位置显示。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [vue+echarts实现动态折线的方法与注意](https://download.csdn.net/download/weixin_38517122/14901131)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [Echarts 折线完全配置指南 - 手把手教你设置 Echarts 折线详细教程](https://blog.csdn.net/m0_67403076/article/details/126099474)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值