echarts简单的关系图

<!DOCTYPE html>
<html>

<head>
  <meta charset="utf-8">
  <title>ECharts关系图</title>
  <!-- 引入 echarts.js -->
  <script src="https://cdnjs.cloudflare.com/ajax/libs/echarts/4.3.0/echarts.min.js"></script>
</head>

<body>
  <div id="main" style="width: 600px;height:400px;"></div>
  <script type="text/javascript">
    let myChart = echarts.init(document.getElementById('main'));
    let baseName = "项目";
    let chartData = {
      '人员': ['人员1', '人员2', '人员3'],
      '机构': ['机构1', '机构2', '机构3'],
      '文献': ['文献1', '文献2', '文献3'],
      '测试  ': ['嗯嗯', '嗷嗷'']
    };

    let datas = [{
      name: baseName || '',
      draggable: true
    }];
    let lines = [];
    let categoryIdx = 0;
    let keyIndex = 0;
    let dataIndex = 0;
  for (const key in chartData) {
      let values = chartData[key];
      keyIndex = dataIndex;
      datas.push({ name: key, category: categoryIdx, draggable: true });
      console.log(key);
      
      keyIndex++;
      dataIndex++;
      lines.push({
        source: 0,
        target: keyIndex,
        value: ''
      });

      for (let i = 0; i < values.length; i++) {
        let val = values[i];
        datas.push({ name: val, category: categoryIdx, draggable: true });
        dataIndex++;
        lines.push({
          source: keyIndex,
          target: dataIndex,
          value: ''
        });
      }
      categoryIdx++;
    };
    console.log(datas);
    console.log(lines);
    
    let option = {
      title: {
        text: ''
      },
      tooltip: {},
      animationDurationUpdate: 100,
      label: {
        normal: {
          show: true,
          textStyle: {
            fontSize: 12
          },
        }
      },
      series: [
        {
        type: 'graph',
        layout: 'force',//采用力引导布局
        symbolSize: 45,
        legendHoverLink: true,//启用图例 hover 时的联动高亮。
        focusNodeAdjacency: true,//在鼠标移到节点上的时候突出显示节点以及节点的边和邻接节点。
        roam: true,
        label: {
          normal: {
            show: true,
            position: 'inside',
            textStyle: {
              fontSize: 12
            },
          }
        },
        force: {
          repulsion: 100
        },
        edgeSymbolSize: [5, 10],
        edgeLabel: {
          normal: {
            show: true,
            textStyle: {
              fontSize: 10
            },
            formatter: "{c}"
          }
        },
        categories: [{
          itemStyle: {
            normal: {
              color: "#BB8FCE",
            }
          }
        }, {
          itemStyle: {
            normal: {
              color: "#0099FF",
            }
          }
        }, {
          itemStyle: {
            normal: {
              color: "#5DADE2",
            }
          }
        },
        {
          itemStyle: {
            normal: {
              color: "#5DADE2",
            }
          }
        }
      ],
        data: datas,
        links: lines,
        lineStyle: {
          normal: {
            opacity: 0.9,
            width: 1,
            curveness: 0
          }
        }
      }
    ]
    };
    myChart.setOption(option);
  </script>
</body>

</html>

在这里插入图片描述

很抱歉,作为一个文本AI模型,我无法直接显示片。但是,你可以通过以下步骤来获取Echarts关系片: 1. 首先,你需要安装Echarts库。你可以在Echarts的官方网站(https://www.echartsjs.com/zh/index.html)上找到安装和使用文档。 2. 使用Echarts创建你想要的关系,并将其保存为片。你可以使用Echarts提供的API和配置选项来定义表的样式和数据。 3. 保存关系片。Echarts提供了`echarts.convertToImage`方法,可以将关系转换为片,并可以选择下载或保存。 以下是一个简单的示例代码,展示了如何使用Echarts创建一个关系并保存为片: ```javascript // 引入Echarts库 import echarts from 'echarts'; // 创建一个关系实例 const chart = echarts.init(document.getElementById('chart-container')); // 配置关系的样式和数据 const option = { // 配置选项... series: [{ type: 'graph', // 数据... }] }; // 设置关系的配置项 chart.setOption(option); // 将关系转换为片 chart.convertToImage({ type: 'png', // 片类型 pixelRatio: 1, // 分辨率 backgroundColor: '#fff', // 背景颜色 }); // 保存关系片 chart.saveAsImage('relation_chart.png'); ``` 请确保你已经正确安装了Echarts库,并在HTML文件中添加了一个具有唯一id的div元素(例如`<div id="chart-container"></div>`)作为关系的容器。 希望这能帮到你!如果你有任何其他问题,请随时提问。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值