<!doctype html>
|
|
<html>
|
|
<head>
|
|
<title>Network | Clustering</title>
|
|
|
|
<script type="text/javascript" src="../../dist/vis.js"></script>
|
|
<link href="../../dist/vis.css" rel="stylesheet" type="text/css" />
|
|
|
|
<style type="text/css">
|
|
#mynetwork {
|
|
width: 400px;
|
|
height: 400px;
|
|
border: 1px solid lightgray;
|
|
}
|
|
</style>
|
|
<script src="../googleAnalytics.js"></script>
|
|
</head>
|
|
|
|
<body>
|
|
|
|
<div id="mynetwork"></div>
|
|
|
|
<script type="text/javascript">
|
|
// create an array with nodes
|
|
var nodes = [
|
|
{id: 1, label: 'Node 1'},
|
|
{id: 2, label: 'Node 2'},
|
|
{id: 3, label: 'Node 3'},
|
|
{id: 4, label: 'Node 4'},
|
|
{id: 5, label: 'Node 5'},
|
|
{id: 6, label: 'Node 6', cid:1},
|
|
{id: 7, label: 'Node 7', cid:1},
|
|
{id: 8, label: 'Node 8', cid:1},
|
|
{id: 9, label: 'Node 9', cid:1},
|
|
{id: 10, label: 'Node 10', cid:1}
|
|
];
|
|
|
|
// create an array with edges
|
|
var edges = [
|
|
{from: 1, to: 2},
|
|
{from: 1, to: 3},
|
|
{from: 10, to: 4},
|
|
{from: 2, to: 5},
|
|
{from: 6, to: 2},
|
|
{from: 7, to: 5},
|
|
{from: 8, to: 6},
|
|
{from: 9, to: 7},
|
|
{from: 10, to: 9}
|
|
];
|
|
|
|
// create a network
|
|
var container = document.getElementById('mynetwork');
|
|
var data = {
|
|
nodes: nodes,
|
|
edges: edges
|
|
};
|
|
var options = {};
|
|
var network = new vis.Network(container, data, options);
|
|
//
|
|
// var clusterOptions = {
|
|
// joinCondition:function(parentOptions,childOptions) {
|
|
// return true;
|
|
// },
|
|
// processClusterProperties: function (properties, childNodes, childEdges) {
|
|
// return properties;
|
|
// },
|
|
// clusterNodeProperties: {id:'bla', borderWidth:2},
|
|
// }
|
|
|
|
var clusterOptionsByData = {
|
|
joinCondition:function(childOptions) {
|
|
console.log(childOptions.id)
|
|
return childOptions.cid == 1;
|
|
},
|
|
processProperties: function (properties, childNodes, childEdges) {
|
|
return properties;
|
|
},
|
|
clusterNodeProperties: {id:'bla', borderWidth:2}
|
|
}
|
|
|
|
network.clustering.cluster(clusterOptionsByData)
|
|
// network.clustering.clusterOutliers({clusterNodeProperties: {shape:'database',borderWidth:3}})
|
|
// network.clusterByConnection(2, clusterOptions);
|
|
|
|
// network.clusterByConnection(9, {
|
|
// joinCondition:function(parentOptions,childOptions) {return true;},
|
|
// processProperties:function (properties, childNodes, childEdges) {
|
|
// return properties;
|
|
// },
|
|
// clusterNodeProperties: {id:'bla2', label:"bla2", borderWidth:8}
|
|
// });
|
|
network.body.emitter.on("select", function(params) {
|
|
if (params.nodes.length == 1) {
|
|
if (network.clustering.isCluster(params.nodes[0]) == true) {
|
|
network.clustering.openCluster(params.nodes[0])
|
|
}
|
|
}
|
|
})
|
|
// network.openCluster('bla');
|
|
// network.openCluster('bla2');
|
|
|
|
</script>
|
|
|
|
</body>
|
|
</html>
|