关系图绘制详解

由于项目中需要使用关系图,一般官方网站都是用自己的json文件,而且关系图一般都包含很多的数据,修改起来很不方便,所以从网上找到一个详细关系图详细的博客,所以在此分享一下

代码:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
 <div id="container" style="height:500%"></div>
  <script type="text/javascript" src="js/echarts.js"></script>
    <script type="text/javascript" src="js/dataTools.js"></script>
    <script type="text/javascript" src="js/jquery-3.3.1.js"></script>
     <script type="text/javascript">
var dom = document.getElementById("container");
var myChart = echarts.init(dom);
var app = {};
option = null;
myChart.showLoading();
var webkitDep = {
"type": "force",
"categories": [//关系网类别,可以写多组
    {
        "name": "人物关系",//关系网名称
        "keyword": {},
        "base": "人物关系"
    }
],
"nodes": [//展示的节点
    {
        "name": "刘烨",//节点名称
        "value": 3,
        "category": 0//与关系网类别索引对应,此处只有一个关系网所以这里写0
    },
    {
        "name": "霓娜",
        "value": 1,
        "category": 0
    },
    {
        "name": "诺一",
        "value": 1,
        "category": 0
    }
],
"links": [//节点之间连接
    {
        "source": 0,//起始节点,0表示第一个节点
        "target": 1 //目标节点,1表示与索引为1的节点进行连接
    },
    {
        "source": 0,
        "target": 2
    }
]
};
myChart.hideLoading();

option = {
    legend: {
        data: ['人物关系']//此处的数据必须和关系网类别中name相对应
    },
    series: [{
        type: 'graph',
        layout: 'force',
        animation: false,
        label: {
            normal: {
                show:true,
                position: 'right'
            }
        },
        draggable: true,
        data: webkitDep.nodes.map(function (node, idx) {
            node.id = idx;
            return node;
        }),
        categories: webkitDep.categories,
        force: {
            edgeLength: 101,//连线的长度
            repulsion: 100  //子节点之间的间距
        },
        edges: webkitDep.links
    }]
};
myChart.setOption(option);

    </script>
</body>
</html>

参考地址:https://blog.csdn.net/qq_29384639/article/details/53322142?depth_1-utm_source=distribute.pc_relevant.none-task&utm_source=distribute.pc_relevant.none-task

原文地址:https://www.cnblogs.com/1gaoyu/p/12536396.html