vis.js 大节点以分层模式重叠

Mak*_*kin 5 javascript vis.js

样本

vis.js 中的节点是否可以分层布局而不会在 X 轴上重叠?

我尝试添加选项:

    var options = {
        layout: {
            hierarchical: {
                direction: "UD",
                sortMethod: "directed"
            },
            physics: {
                solver: "barnesHut"
                ,barnesHut: {
                    avoidOverlap: 1
                }
            }
        }
    };
Run Code Online (Sandbox Code Playgroud)

moj*_*xel 2

您可以增加layout.hierarchical.nodeSpacing初始布局。

// create an array with nodes
var nodes = new vis.DataSet([
  {id: 1, label: 'Node 1 with lage text'},
  {id: 2, label: 'Node 2 with lage text'},
  {id: 3, label: 'Node 3 with lage text'},
  {id: 4, label: 'Node 4 with lage text'},
  {id: 5, label: 'Node 5 with lage text'}
]);

// create an array with edges
var edges = new vis.DataSet([
  {from: 1, to: 3},
  {from: 1, to: 2},
  {from: 2, to: 4},
  {from: 2, to: 5}
]);

// create a network
var container = document.getElementById('mynetwork');
var data = {
  nodes: nodes,
  edges: edges
};
var options = {
  layout: {
    hierarchical: {
      direction: "UD",
      sortMethod: "directed",
      nodeSpacing: 200  // <-- !!!!!!!
    }
  },
  physics: false
};
var network = new vis.Network(container, data, options);
Run Code Online (Sandbox Code Playgroud)
#mynetwork {
  width: 100%;
  height: 100%;
  border: 1px solid lightgray;
}
Run Code Online (Sandbox Code Playgroud)
<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <script src="https://cdnjs.cloudflare.com/ajax/libs/vis/4.17.0/vis.min.js" type="text/javascript"></script>
  <link  href="https://cdnjs.cloudflare.com/ajax/libs/vis/4.17.0/vis.min.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="mynetwork"></div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)