@ -0,0 +1,87 @@ | |||||
<!DOCTYPE html> | |||||
<!-- saved from url=(0044)http://kenedict.com/networks/worldcup14/vis/ , thanks Andre!--> | |||||
<html><head><meta http-equiv="content-type" content="text/html; charset=UTF8"> | |||||
<title>Network | Static smooth curves - World Cup Network</title> | |||||
<script type="text/javascript" src="../../dist/vis.js"></script> | |||||
<link type="text/css" rel="stylesheet" href="../../dist/vis.css"> | |||||
<style type="text/css"> | |||||
#mynetwork { | |||||
width: 800px; | |||||
height: 800px; | |||||
border: 1px solid lightgray; | |||||
} | |||||
</style> | |||||
</head> | |||||
<body> | |||||
<h2>Dynamic Data - Neighbourhood Highlight</h2> | |||||
<div style="width:700px; font-size:14px;"> | |||||
This example shows the power of the DataSet. Once a node is clicked, all nodes are greyed out except for the first and second order connected nodes. | |||||
In this example we show how you can determine the order of connection per node as well as applying individual styling to the nodes based on whether or not | |||||
they are connected to the selected node. The code doing the highlighting only takes about 20ms, the rest of the time is the redrawing of the network (9200 edges..). | |||||
</div> | |||||
<div id="mynetwork"></div> | |||||
<script type="text/javascript"> | |||||
var network; | |||||
var nodes = new vis.DataSet(); | |||||
var edges = new vis.DataSet(); | |||||
function redrawAll() { | |||||
nodes.clear(); | |||||
edges.clear(); | |||||
network = null; | |||||
// create an array with nodes | |||||
nodes.add(nodesData); | |||||
edges.add(edgesData); | |||||
var container = document.getElementById('mynetwork'); | |||||
var data = { | |||||
nodes: nodes, | |||||
edges: edges | |||||
}; | |||||
var options = { | |||||
nodes: { | |||||
shape: 'dot', | |||||
radiusMin: 10, | |||||
radiusMax: 30, | |||||
fontSize: 12, | |||||
fontFace: "Tahoma" | |||||
}, | |||||
edges: { | |||||
width: 0.15, | |||||
inheritColor: "from" | |||||
}, | |||||
tooltip: { | |||||
delay: 200, | |||||
fontSize: 12, | |||||
color: { | |||||
background: "#fff" | |||||
} | |||||
}, | |||||
smoothCurves: {dynamic:false, type: "continuous"}, | |||||
stabilize: false, | |||||
physics: {barnesHut: {gravitationalConstant: 0, centralGravity: 0, springConstant: 0}}, | |||||
hideEdgesOnDrag: true | |||||
}; | |||||
network = new vis.Network(container, data, options); | |||||
} | |||||
redrawAll() | |||||
</script> | |||||
</body></html> |
@ -0,0 +1,59 @@ | |||||
function parseGephi(gephiJSON, options) { | |||||
var edges = []; | |||||
var nodes = []; | |||||
this.options = { | |||||
edges: { | |||||
inheritColor: 'from' | |||||
}, | |||||
nodes: { | |||||
allowedToMove: false, | |||||
parseColor: false | |||||
} | |||||
}; | |||||
if (options !== undefined) { | |||||
this.options.edges['inheritColor'] = options.inheritColor | 'from'; | |||||
this.options.nodes['allowedToMove'] = options.allowedToMove | false; | |||||
this.options.nodes['parseColor'] = options.parseColor | false; | |||||
} | |||||
var gEdges = gephiJSON.edges; | |||||
var gNodes = gephiJSON.nodes; | |||||
for (var i = 0; i < gEdges.length; i++) { | |||||
var edge = {}; | |||||
edge['id'] = gEdges.id; | |||||
edge['from'] = gEdges.source; | |||||
edge['to'] = gEdges.target; | |||||
edge['attributes'] = gEdges.attributes; | |||||
edge['value'] = gEdges.attributes !== undefined ? gEdges.attributes.Weight : undefined; | |||||
edge['width'] = gEdges.size; | |||||
edge['color'] = gEdges.color; | |||||
edge['inheritColor'] = edge['color'] !== undefined ? false : this.options.inheritColor; | |||||
edges.push(edge); | |||||
} | |||||
for (var i = 0; i < gNodes.length; i++) { | |||||
var node = {}; | |||||
node['id'] = gNodes.id; | |||||
node['attributes'] = gNodes.attributes; | |||||
node['x'] = gNodes.x; | |||||
node['y'] = gNodes.y; | |||||
node['label'] = gNodes.label; | |||||
if (this.options.parseColor == true) { | |||||
node['color'] = gNodes.color; | |||||
} | |||||
else { | |||||
node['color'] = gNodes.color !== undefined ? {background:gNodes.color, border:gNodes.color} : undefined; | |||||
} | |||||
node['radius'] = gNodes.size; | |||||
node['allowedToMoveX'] = this.options.allowedToMove; | |||||
node['allowedToMoveY'] = this.options.allowedToMove; | |||||
node['shape'] = 'dot' | |||||
nodes.push(node); | |||||
} | |||||
return {nodes:nodes, edges:edges}; | |||||
} | |||||
exports.parseGephi = parseGephi; |