vis.js is a dynamic, browser-based visualization library
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

91 lines
2.6 KiB

<!doctype html>
<html>
<head>
<title>Network | Random nodes</title>
<style type="text/css">
body {
font: 10pt sans;
}
#mynetwork {
width: 600px;
height: 600px;
border: 1px solid lightgray;
}
#message {
color:darkred;
max-width:600px;
font-size:16px;
cursor:pointer;
text-decoration: underline;
}
</style>
<script type="text/javascript" src="../exampleUtil.js"></script>
<script type="text/javascript" src="../../../dist/vis.js"></script>
<link href="../../../dist/vis-network.min.css" rel="stylesheet" type="text/css" />
<script type="text/javascript">
var nodes = null;
var edges = null;
var network = null;
var setSmooth = false;
function destroy() {
if (network !== null) {
network.destroy();
network = null;
}
}
function draw() {
destroy();
var nodeCount = document.getElementById('nodeCount').value;
if (nodeCount > 100) {
document.getElementById("message").innerHTML = '<a onclick="disableSmoothCurves()">You may want to disable dynamic smooth curves for better performance with a large amount of nodes and edges. Click here to disable them.</a>';
}
else if (setSmooth === false) {
document.getElementById("message").innerHTML = '';
}
// create a network
var container = document.getElementById('mynetwork');
var data = getScaleFreeNetwork(nodeCount);
var options = {
physics: { stabilization: false }
};
network = new vis.Network(container, data, options);
}
function disableSmoothCurves() {
setSmooth = true;
network.setOptions({edges:{smooth:{type:'continuous'}}});
document.getElementById("message").innerHTML = '<a onclick="enableSmoothCurves()">Click here to reenable the dynamic smooth curves.</a>';
}
function enableSmoothCurves() {
setSmooth = false;
document.getElementById("message").innerHTML = '<a onclick="disableSmoothCurves()">You may want to disable dynamic smooth curves for better performance with a large amount of nodes and edges. Click here to disable them.</a>';
network.setOptions({edges:{smooth:{type:'dynamic'}}});
}
</script>
</head>
<body onload="draw();">
<p>
Generate a random network with nodes and edges.
</p>
<p>
<form onsubmit="draw(); return false;">
<label for="nodeCount">Number of nodes:</label>
<input id="nodeCount" type="text" value="25" style="width: 50px;">
<input type="button" value="Go" onclick="draw()">
</form>
</p>
<span id="message"></span>
<div id="mynetwork"></div>
</body>
</html>