<html>
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<title>Hierarchical Layout without Physics</title>
|
|
<script type="text/javascript" src="../../../dist/vis.js"></script>
|
|
<script type="text/javascript" src="../datasources/largeHierarchicalDataset.js"></script>
|
|
<link href="../../../dist/vis.css" rel="stylesheet" type="text/css" />
|
|
<style type="text/css">
|
|
#network{
|
|
width: 1000px;
|
|
height: 400px;
|
|
border: 1px solid lightgray;
|
|
}
|
|
|
|
td {
|
|
vertical-align:top;
|
|
}
|
|
table {
|
|
width:800px;
|
|
}
|
|
</style>
|
|
</head>
|
|
<body>
|
|
<h1>Hierarchical Layout without Physics</h1>
|
|
The hierarchical layout can now be controlled without the use of physics. This is much quicker. The options for this are: <br /><br />
|
|
|
|
<table>
|
|
<tr>
|
|
<td width="150px"><code>levelSeparation</code></td>
|
|
<td width="400px">Distance between levels.</td>
|
|
</tr>
|
|
<tr>
|
|
<td><code>nodeSpacing</code></td>
|
|
<td>Minimum distance between nodes on the free axis.</td>
|
|
</tr>
|
|
<tr>
|
|
<td><code>treeSpacing</code></td>
|
|
<td>Distance between different trees (independent networks).</td>
|
|
</tr>
|
|
<tr>
|
|
<td><code>blockShifting</code></td>
|
|
<td>Method for reducing whitespace. Can be used alone or together with edge minimization. Each node will check for whitespace and will shift
|
|
it's branch along with it for as far as it can, respecting the nodeSpacing on any level.</td>
|
|
</tr>
|
|
<tr>
|
|
<td><code>edgeMinimization</code></td>
|
|
<td>Method for reducing whitespace. Can be used alone or together with block shifting. Enabling block shifting will usually speed up the layout process.
|
|
Each node will try to move along its free axis to reduce the total length of it's edges.</td>
|
|
</tr>
|
|
<tr>
|
|
<td><code>parentCentralization</code></td>
|
|
<td>When true, the parents nodes will be centered again after the the layout algorithm has been finished.</td>
|
|
</tr>
|
|
</table>
|
|
<br /><br />
|
|
Play with the settings below the network and see how the layout changes!
|
|
<div id="network"></div>
|
|
<script>
|
|
var data = {
|
|
nodes: nodes,
|
|
edges: edges
|
|
};
|
|
// create a network
|
|
var container = document.getElementById('network');
|
|
var options = {
|
|
layout: {
|
|
hierarchical: {
|
|
direction: "UD",
|
|
sortMethod: "directed"
|
|
}
|
|
},
|
|
interaction: {dragNodes :false},
|
|
physics: {
|
|
enabled: false
|
|
},
|
|
configure: {
|
|
filter: function (option, path) {
|
|
if (path.indexOf('hierarchical') !== -1) {
|
|
return true;
|
|
}
|
|
return false;
|
|
},
|
|
showButton:false
|
|
}
|
|
};
|
|
var network = new vis.Network(container, data, options);
|
|
</script>
|
|
</body>
|
|
</html>
|