sk / networks /network.html
naqibhakimi's picture
initial
797a2e2
<html>
<head>
<meta charset="utf-8">
<script src="lib/bindings/utils.js"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/vis-network/9.1.2/dist/dist/vis-network.min.css" integrity="sha512-WgxfT5LWjfszlPHXRmBWHkV2eceiWTOBvrKCNbdgDYTHrT2AeLCGbF4sZlZw3UMN3WtL0tGUoIAKsu8mllg/XA==" crossorigin="anonymous" referrerpolicy="no-referrer" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/vis-network/9.1.2/dist/vis-network.min.js" integrity="sha512-LnvoEWDFrqGHlHmDD2101OrLcbsfkrzoSpvtSQtxK3RMnRV0eOkhhBN2dXHKRrUU8p2DGRTk35n4O8nWSVe1mQ==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
<center>
<h1></h1>
</center>
<!-- <link rel="stylesheet" href="../node_modules/vis/dist/vis.min.css" type="text/css" />
<script type="text/javascript" src="../node_modules/vis/dist/vis.js"> </script>-->
<link
href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta3/dist/css/bootstrap.min.css"
rel="stylesheet"
integrity="sha384-eOJMYsd53ii+scO/bJGFsiCZc+5NDVN2yr8+0RDqr0Ql0h+rP48ckxlpbzKgwra6"
crossorigin="anonymous"
/>
<script
src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta3/dist/js/bootstrap.bundle.min.js"
integrity="sha384-JEW9xMcG8R+pH31jmWH6WWP0WintQrMb4s7ZOdauHnUtxwoG2vI5DkLtS3qm9Ekf"
crossorigin="anonymous"
></script>
<center>
<h1></h1>
</center>
<style type="text/css">
#mynetwork {
width: 700px;
height: 700px;
background-color: #ffffff;
border: 1px solid lightgray;
position: relative;
float: left;
}
#config {
float: left;
width: 400px;
height: 600px;
}
</style>
</head>
<body>
<div class="card" style="width: 100%">
<div id="mynetwork" class="card-body"></div>
</div>
<div id="config"></div>
<script type="text/javascript">
// initialize global variables.
var edges;
var nodes;
var allNodes;
var allEdges;
var nodeColors;
var originalNodes;
var network;
var container;
var options, data;
var filter = {
item : '',
property : '',
value : []
};
// This method is responsible for drawing the graph, returns the drawn network
function drawGraph() {
var container = document.getElementById('mynetwork');
// parsing and collecting nodes and edges from the python
nodes = new vis.DataSet([{"color": "#00FF00", "id": "Google", "label": "Google", "shape": "circle"}, {"color": "#00FF00", "id": "Alphabet", "label": "Alphabet", "shape": "circle"}, {"color": "#00FF00", "id": "Larry Page", "label": "Larry Page", "shape": "circle"}, {"color": "#00FF00", "id": "Stanford University", "label": "Stanford University", "shape": "circle"}, {"color": "#00FF00", "id": "Sergey Brin", "label": "Sergey Brin", "shape": "circle"}, {"color": "#00FF00", "id": "Sundar Pichai", "label": "Sundar Pichai", "shape": "circle"}, {"color": "#00FF00", "id": "Alphabet Inc.", "label": "Alphabet Inc.", "shape": "circle"}, {"color": "#00FF00", "id": "Google Search", "label": "Google Search", "shape": "circle"}, {"color": "#00FF00", "id": "Gmail", "label": "Gmail", "shape": "circle"}, {"color": "#00FF00", "id": "YouTube", "label": "YouTube", "shape": "circle"}, {"color": "#00FF00", "id": "Nest", "label": "Nest", "shape": "circle"}, {"color": "#00FF00", "id": "Pixel", "label": "Pixel", "shape": "circle"}, {"color": "#00FF00", "id": "Google Assistant", "label": "Google Assistant", "shape": "circle"}, {"color": "#00FF00", "id": "Artificial intelligence", "label": "Artificial intelligence", "shape": "circle"}, {"color": "#00FF00", "id": "Machine learning", "label": "Machine learning", "shape": "circle"}, {"color": "#00FF00", "id": "TensorFlow", "label": "TensorFlow", "shape": "circle"}, {"color": "#00FF00", "id": "Pixel Watch", "label": "Pixel Watch", "shape": "circle"}, {"color": "#00FF00", "id": "Fitbit", "label": "Fitbit", "shape": "circle"}, {"color": "#00FF00", "id": "Google Brain", "label": "Google Brain", "shape": "circle"}]);
edges = new vis.DataSet([{"arrows": "to", "from": "Google", "label": "parent organization", "title": "parent organization", "to": "Alphabet"}, {"arrows": "to", "from": "Google", "label": "founded by", "title": "founded by", "to": "Larry Page"}, {"arrows": "to", "from": "Alphabet", "label": "subsidiary", "title": "subsidiary", "to": "Google"}, {"arrows": "to", "from": "Alphabet", "label": "founded by", "title": "founded by", "to": "Larry Page"}, {"arrows": "to", "from": "Larry Page", "label": "educated at", "title": "educated at", "to": "Stanford University"}, {"arrows": "to", "from": "Sergey Brin", "label": "educated at", "title": "educated at", "to": "Stanford University"}, {"arrows": "to", "from": "Sundar Pichai", "label": "employer", "title": "employer", "to": "Google"}, {"arrows": "to", "from": "Google", "label": "parent organization", "title": "parent organization", "to": "Alphabet Inc."}, {"arrows": "to", "from": "Alphabet Inc.", "label": "subsidiary", "title": "subsidiary", "to": "Google"}, {"arrows": "to", "from": "Google Search", "label": "owned by", "title": "owned by", "to": "Alphabet"}, {"arrows": "to", "from": "Gmail", "label": "owned by", "title": "owned by", "to": "Alphabet"}, {"arrows": "to", "from": "YouTube", "label": "owned by", "title": "owned by", "to": "Alphabet"}, {"arrows": "to", "from": "Nest", "label": "developer", "title": "developer", "to": "Alphabet"}, {"arrows": "to", "from": "Pixel", "label": "manufacturer", "title": "manufacturer", "to": "Alphabet"}, {"arrows": "to", "from": "Nest", "label": "owned by", "title": "owned by", "to": "Alphabet"}, {"arrows": "to", "from": "Google Assistant", "label": "use", "title": "use", "to": "Artificial intelligence"}, {"arrows": "to", "from": "Machine learning", "label": "part of", "title": "part of", "to": "Artificial intelligence"}, {"arrows": "to", "from": "TensorFlow", "label": "use", "title": "use", "to": "Artificial intelligence"}, {"arrows": "to", "from": "Pixel Watch", "label": "connects with", "title": "connects with", "to": "Fitbit"}, {"arrows": "to", "from": "Fitbit", "label": "connects with", "title": "connects with", "to": "Pixel Watch"}, {"arrows": "to", "from": "Google", "label": "subsidiary", "title": "subsidiary", "to": "YouTube"}, {"arrows": "to", "from": "YouTube", "label": "parent organization", "title": "parent organization", "to": "Google"}, {"arrows": "to", "from": "YouTube", "label": "owned by", "title": "owned by", "to": "Google"}, {"arrows": "to", "from": "Google Brain", "label": "owned by", "title": "owned by", "to": "Google"}, {"arrows": "to", "from": "Google", "label": "owner of", "title": "owner of", "to": "Google Brain"}]);
nodeColors = {};
allNodes = nodes.get({ returnType: "Object" });
for (nodeId in allNodes) {
nodeColors[nodeId] = allNodes[nodeId].color;
}
allEdges = edges.get({ returnType: "Object" });
// adding nodes and edges to the graph
data = {nodes: nodes, edges: edges};
var options = {
"configure": {
"enabled": true,
"filter": [
"physics"
]
},
"edges": {
"color": {
"inherit": true
},
"smooth": {
"enabled": true,
"type": "dynamic"
}
},
"interaction": {
"dragNodes": true,
"hideEdgesOnDrag": false,
"hideNodesOnDrag": false
},
"physics": {
"enabled": true,
"repulsion": {
"centralGravity": 0.2,
"damping": 0.09,
"nodeDistance": 200,
"springConstant": 0.05,
"springLength": 200
},
"solver": "repulsion",
"stabilization": {
"enabled": true,
"fit": true,
"iterations": 1000,
"onlyDynamicEdges": false,
"updateInterval": 50
}
}
};
// if this network requires displaying the configure window,
// put it in its div
options.configure["container"] = document.getElementById("config");
network = new vis.Network(container, data, options);
return network;
}
drawGraph();
</script>
</body>
</html>