Echarts图中关系图graph和路径图lines结合使用

本文通过实例代码详细讲解如何在Echarts中同时展示关系图(graph)和路径图(lines),包括图形配置、数据格式设置、效果展示等,并对比了单独使用关系图和路径图的情况,帮助理解两者在图表结合中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Echarts图中关系图graph和路径图lines结合使用

一:关系图graph和路径图lines结合:

1、效果图:

在这里插入图片描述

2、整体代码:(注意lines图的数据集格式)
<template>
  <div>
    <div id="about" style="width: 800px;height: 400px"></div>
  </div>
</template>

<script>
import echarts from 'echarts'
export default {
  name: "About",
  data(){
    return{}
  },
  methods:{
    init(){
      var mychart=echarts.init(document.getElementById('about'))
      var option= {
        //使用直角坐标需要xAxis和yAxis
        xAxis: {
          show: true,
          type: 'value'
        },
        yAxis: {
          show: true,
          type: 'value'
        },
        //直角坐标系中的绘图网格
        grid: {
          top: '20%',
          bottom: '25%'
        },
        //提示框样式
        tooltip: {
          formatter: "{c}"//字符串模板:{c}:数据值
        },
        series: [{
          type: "graph",
          layout: "none",//图的布局(none不采用任何布局)
          focusNodeAdjacency: true, // 鼠标悬浮到某节点,则此节点以及其所有邻接节点高亮
          roam: true, // 鼠标缩放和平移漫游
          symbolSize: [50, 50],//节点标记大小
           symbol:'image://'+require('@/assets/1.png'),//节点图标(写在这里所有的图标都一样)
          //categories: "categories",//节点分类的类目
          coordinateSystem: 'cartesian2d',//指定该系列使用的坐标系(直角坐标系需要添加xAxis和yAxis坐标)
          edgeSymbol:['circle','arrow'],//边两端的标记类型(左边圆圈,右边箭头)
          edgeSymbolSize: [4, 10],//边两端的标记大小
          lineStyle: {//关系边的公用线条样式
            normal: {
              width: 2,
              shadowColor: "none",
              color: "purple",
            }
          },
          label: {//图形上的文本标签
            show: true,//是否显示图形上的文本标签
          },
          //节点集合(节点的name不能重复)
          data: [
            {
              name: "a",
               //symbol:'image://'+require('@/assets/1.png'),//节点图标(写在这里可以分别显示不同的图标)
              value:[0,1]//坐标
            },
            {
              name: "b",
              value:[1,1]
            },
            {
              name: "c",
              value:[1,2]
            },{
            name:'d',
              value:[1,0]
            }
          ],
          //线集合
          links: [
            {
              source: "a",//边的源节点名称
              target: "b"//边的目标节点名称
            },
            {
              source: "a",
              target: "c"
            },
            {
              source: "a",
              target: "d"
            }
          ]
        },
          {
            type: 'lines',
             polyline: true,//是否是多段线
             coordinateSystem: 'cartesian2d',//指定该系列使用的坐标系(直角坐标系需要添加xAxis和yAxis坐标)
             lineStyle: {//线的样式
              type: 'dashed',//线的类型(虚线)
              width: 2,//线宽
              color: 'black'//线的颜色
            },
            effect: {//线特效的配置
              show: true,//是否显示特效
              trailLength: 0.1,//特效尾迹的长度。取从 0 到 1 的值,数值越大尾迹越长
              symbol: 'arrow',//线两端的标记类型
              symbolSize: 8//线两端的标记大小
            },
            //线的数据集(第一个coord是起点,第二个coord是终点)
            data:[
              [
                {coord:[0,1]},{coord:[1,0],effect:{color:'green'}}
              ],
              [
                {coord:[0,1]},{coord:[1,1],effect:{color:'red'}}
              ],
              [
                {coord:[0,1]},{coord:[1,2],effect:{color:'green'}}
              ]

            ]
          }]
      }
      mychart.setOption(option)
    }
  },
  mounted() {
    this.init()
  },
}
</script>

二:关系图(graph)

1、效果图:

在这里插入图片描述

2、template
<template>
  <div>
    <div id="about" style="width: 800px;height: 400px"></div>
  </div>
</template>
3、script(只是把type: 'lines’的series注释掉了)
<script>
import echarts from 'echarts'
export default {
  name: "About",
  data(){
    return{}
  },
  methods:{
    init(){
      var mychart=echarts.init(document.getElementById('about'))
      var option= {
        //使用直角坐标需要xAxis和yAxis
        xAxis: {
          show: true,
          type: 'value'
        },
        yAxis: {
          show: true,
          type: 'value'
        },
        //直角坐标系中的绘图网格
        grid: {
          top: '20%',
          bottom: '25%'
        },
        //提示框样式
        tooltip: {
          formatter: "{c}"//字符串模板:{c}:数据值
        },
        series: [{
          type: "graph",
          layout: "none",//图的布局(none不采用任何布局)
          focusNodeAdjacency: true, // 鼠标悬浮到某节点,则此节点以及其所有邻接节点高亮
          roam: true, // 鼠标缩放和平移漫游
          symbolSize: [50, 50],//节点标记大小
          symbol:'image://'+require('@/assets/1.png'),//节点图标(写在这里所有的图标都一样)
          //categories: "categories",//节点分类的类目
          coordinateSystem: 'cartesian2d',//指定该系列使用的坐标系(直角坐标系需要添加xAxis和yAxis坐标)
          edgeSymbol:['circle','arrow'],//边两端的标记类型(左边圆圈,右边箭头)
          edgeSymbolSize: [4, 10],//边两端的标记大小
          lineStyle: {//关系边的公用线条样式
            normal: {
              width: 2,
              shadowColor: "none",
              color: "purple",
            }
          },
          label: {//图形上的文本标签
            show: true,//是否显示图形上的文本标签
          },
          //节点集合(节点的name不能重复)
          data: [
            {
              name: "a",
              //symbol:'image://'+require('@/assets/1.png'),//节点图标(写在这里可以分别显示不同的图标)
              value:[0,1]//坐标
            },
            {
              name: "b",
              value:[1,1]
            },
            {
              name: "c",
              value:[1,2]
            },{
            name:'d',
              value:[1,0]
            }
          ],
          //线集合
          links: [
            {
              source: "a",
              target: "b"
            },
            {
              source: "a",
              target: "c"
            },
            {
              source: "a",
              target: "d"
            }
          ]
        }]
      }
      mychart.setOption(option)
    }
  },
  mounted() {
    this.init()
  },
}
</script>

总结:

(1)在使用关系图graph时,需要给出data点集合和links线集合(links线集合也可以没有)
(2)在使用路径图lines,需要给出data线集合
(3)路径图lines中的线集合data数据格式特殊,不能写错,不过从 版本3.2.0 起改为如下配置:
在这里插入图片描述
示例:

 data:[
            /*  [
                {coord:[0,1]},{coord:[1,0],effect:{color:'green'}}
              ],
              [
                {coord:[0,1]},{coord:[1,1],effect:{color:'red'}}
              ],
              [
                {coord:[0,1]},{coord:[1,2],effect:{color:'green'}}
              ]*/
              {
                coords:[
                    [0,1],[1,2],[1,0]
                ],
                lineStyle:{
                  color:'green'
                }
              },{
                coords:[
                  [0,1],[1,1]
                ],
                lineStyle:{
                  color:'purple'
                }
              }

            ]

效果图:(这个没有加图标)
在这里插入图片描述
以上代码的图标文件所在位置:assets和本文件所在层级的上一级目录平级(about.vue是本文件)
在这里插入图片描述

### 回答1: 在 Echarts 中,`toolbox.feature.magicType` 是一个工具箱的配置项,它提供了一个切换表类型的功能。`icon` 属性用于设置该功能所使用标。 `icon` 属性可以是一个字符串,也可以是一个数组。如果是一个字符串,那么它表示使用内置的标。内置的标包括: - `'line'`:折线标 - `'bar'`:柱状标 - `'stack'`:堆叠标 - `'tiled'`:平铺标 - `'scatter'`:散点标 - `'k'`:K 线标 - `'pie'`:饼标 - `'radar'`:雷达标 - `'chord'`:标 - `'force'`:力导向标 - `'map'`:地标 - `'gauge'`:仪表盘标 - `'funnel'`:漏斗标 - `'sankey'`:桑基标 - `'heatmap'`:热力标 - `'parallel'`:平行坐标系标 - `'lines'`:线标 - `'graph'`:关系图标 如果要使用其他标,可以将 `icon` 属性设置为一个数组,数组中的每个元素代表一个标。每个元素可以是一个字符串,也可以是一个对象。如果是一个字符串,那么它表示使用内置的标。如果是一个对象,那么它应该包含 `image` `title` 两个属性,分别表示标的路径标题。 以下是一个示例: ```javascript option = { ... toolbox: { feature: { magicType: { icon: ['line', 'bar', { image: 'path/to/custom/icon', title: 'Custom Icon' }] } } }, ... }; ``` 在上面的示例中,`magicType` 功能的标设置为三个,分别是内置的折线柱状标,以及一个自定义标。自定义标的路径为 `'path/to/custom/icon'`,标题为 `'Custom Icon'`。 ### 回答2: Echarts表库里的toolbox.feature.magicType.icon设置是用来配置表的切换按钮的标样式。magicType是Echarts表的一个功能组件,它可以在表中添加切换按钮,用于切换不同的表类型。 该配置项可通过自定义标来替换默认的切换按钮标。在Echarts中,标可以使用片的URL地址、矩形的绘制、文本的绘制以及使用Font Awesome等字体标库中的字体标等不同方式来进行设置。 具体的使用方法如下: 1. 使用片作为标: 使用该方式时,可以通过该配置项的value属性来指定片的URL地址,例如: "icon": { "value": "image://url" } 其中,url是片资源的地址。 2. 使用矩形作为标: 使用该方式时,可以通过该配置项的value属性来指定矩形的绘制信息,例如: "icon": { "value": "rect" } 这样就会在按钮上绘制一个矩形。 3. 使用文本作为标: 使用该方式时,可以通过该配置项的value属性来指定文本的绘制信息,例如: "icon": { "value": "text" } 这样就会在按钮上绘制一个文本。 4. 使用字体标作为标: 使用该方式时,可以通过该配置项的value属性来指定字体标的类名,例如: "icon": { "value": "fas fa-chart-bar" } 这样就会在按钮上使用Font Awesome字体标库中的条形标。 以上就是关于Echarts表库中toolbox.feature.magicType.icon设置的基本使用方法配置项说明。通过合理设置该项,可以实现在Echarts表中切换按钮标的个性化展示。 ### 回答3: Echarts中toolbox.feature.magicType.icon设置用于设置切换工具的标样式。magicType是Echarts表中的默认工具栏按钮之一,用于切换表类型,如切换折线、柱状、散点等。icon属性可以用来设置该按钮的标样式。 icon属性可以接受多种不同的取值,包括字符串表示的标名或片链接,或者是一个数组,数组中的每个元素按顺序表示不同状态下的标。 常用的标名包括: - 'line' 表示折线; - 'bar' 表示柱状; - 'stack' 表示堆叠; - 'tiled' 表示平铺; - 'scatter' 表示散点; - 'pie' 表示饼; - 'radar' 表示雷达; - 'tree' 表示树; - 'treemap' 表示矩形树; - 'sunburst' 表示旭日; - 'boxplot' 表示箱型; - 'parallel' 表示平行坐标系; - 'sankey' 表示桑基; - 'heatmap' 表示热力; - 'map' 表示地。 我们也可以使用自定义片作为标,直接传入该片的链接。 如果想在切换工具时显示不同的标,可以将icon属性设置为一个数组,数组中的每个元素表示每个状态下的标。例如,['path://path/to/icon', 'path://path/to/another/icon']。 通过设置toolbox.feature.magicType.icon属性,我们可以根据需求自定义切换工具按钮的标样式,以更好地展示表数据。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值