| @ -0,0 +1,45 @@ | |||
| <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> | |||
| <html> | |||
| <head> | |||
| <title>Graph | Basic usage</title> | |||
| <script type="text/javascript" src="../../vis.js"></script> | |||
| </head> | |||
| <body> | |||
| <div id="mygraph"></div> | |||
| <script type="text/javascript"> | |||
| // create an array with nodes | |||
| var nodes = [ | |||
| {id: 1, text: 'Node 1'}, | |||
| {id: 2, text: 'Node 2'}, | |||
| {id: 3, text: 'Node 3'}, | |||
| {id: 4, text: 'Node 4'}, | |||
| {id: 5, text: 'Node 5'} | |||
| ]; | |||
| // create an array with edges | |||
| var edges = [ | |||
| {from: 1, to: 2}, | |||
| {from: 1, to: 3}, | |||
| {from: 2, to: 4}, | |||
| {from: 2, to: 5} | |||
| ]; | |||
| // specify options | |||
| var options = { | |||
| width: '400px', | |||
| height: '400px' | |||
| }; | |||
| // create a graph | |||
| var graph = new vis.Graph(document.getElementById('mygraph')); | |||
| // draw the graph with the created data and options | |||
| graph.draw(nodes, edges, options); | |||
| </script> | |||
| </body> | |||
| </html> | |||
| @ -0,0 +1,105 @@ | |||
| <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> | |||
| <html> | |||
| <head> | |||
| <title>Graph | Random nodes</title> | |||
| <style type="text/css"> | |||
| body { | |||
| font: 10pt sans; | |||
| } | |||
| </style> | |||
| <script type="text/javascript" src="../../vis.js"></script> | |||
| <script type="text/javascript"> | |||
| var nodes = null; | |||
| var edges = null; | |||
| var graph = null; | |||
| function draw() { | |||
| nodes = []; | |||
| edges = []; | |||
| var connectionCount = []; | |||
| // randomly create some nodes and edges | |||
| var nodeCount = document.getElementById('nodeCount').value; | |||
| for (var i = 0; i < nodeCount; i++) { | |||
| nodes.push({ | |||
| 'id': i, | |||
| 'text': String(i) | |||
| }); | |||
| connectionCount[i] = 0; | |||
| // create edges in a scale-free-graph way | |||
| if (i == 1) { | |||
| var from = i; | |||
| var to = 0; | |||
| edges.push({ | |||
| 'from': from, | |||
| 'to': to | |||
| }); | |||
| connectionCount[from]++; | |||
| connectionCount[to]++; | |||
| } | |||
| else if (i > 1) { | |||
| var conn = edges.length * 2; | |||
| var rand = Math.floor(Math.random() * conn); | |||
| var cum = 0; | |||
| var j = 0; | |||
| while (j < connectionCount.length && cum < rand) { | |||
| cum += connectionCount[j]; | |||
| j++; | |||
| } | |||
| var from = i; | |||
| var to = j; | |||
| edges.push({ | |||
| 'from': from, | |||
| 'to': to | |||
| }); | |||
| connectionCount[from]++; | |||
| connectionCount[to]++; | |||
| } | |||
| } | |||
| // specify options | |||
| var options = { | |||
| width: '600px', | |||
| height: '600px', | |||
| edges: { | |||
| length: 50 | |||
| }, | |||
| stabilize: false | |||
| }; | |||
| // create a graph | |||
| graph = new vis.Graph(document.getElementById('mygraph')); | |||
| // draw data | |||
| graph.draw(nodes, edges, options); | |||
| // add event listeners | |||
| vis.events.addListener(graph, 'select', function(params) { | |||
| document.getElementById('selection').innerHTML = | |||
| 'Selection: ' + JSON.stringify(graph.getSelection()); | |||
| }); | |||
| } | |||
| </script> | |||
| </head> | |||
| <body onload="draw();"> | |||
| <form onsubmit="draw(); return false;"> | |||
| <label for="nodeCount">Number of nodes:</label> | |||
| <input id="nodeCount" type="text" value="25" style="width: 50px;"> | |||
| <input type="submit" value="Go"> | |||
| </form> | |||
| <br> | |||
| <div id="mygraph"></div> | |||
| <p id="selection"></p> | |||
| </body> | |||
| </html> | |||
| @ -0,0 +1,78 @@ | |||
| <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> | |||
| <html> | |||
| <head> | |||
| <title>Graph | Images</title> | |||
| <style type="text/css"> | |||
| body {font: 10pt arial;} | |||
| </style> | |||
| <script type="text/javascript" src="../../vis.js"></script> | |||
| <script type="text/javascript"> | |||
| var nodes = null; | |||
| var edges = null; | |||
| var graph = null; | |||
| var DIR = 'img/refresh-cl/'; | |||
| var LENGTH_MAIN = 150; | |||
| var LENGTH_SUB = 50; | |||
| // Called when the Visualization API is loaded. | |||
| function draw() { | |||
| // Create a data table with nodes. | |||
| nodes = []; | |||
| // Create a data table with links. | |||
| edges = []; | |||
| nodes.push({id: 1, text: 'Main', image: DIR + 'Network-Pipe-icon.png', style: 'image'}); | |||
| nodes.push({id: 2, text: 'Office', image: DIR + 'Network-Pipe-icon.png', style: 'image'}); | |||
| nodes.push({id: 3, text: 'Wireless', image: DIR + 'Network-Pipe-icon.png', style: 'image'}); | |||
| edges.push({from: 1, to: 2, length: LENGTH_MAIN}); | |||
| edges.push({from: 1, to: 3, length: LENGTH_MAIN}); | |||
| for (var i = 4; i <= 7; i++) { | |||
| nodes.push({id: i, text: 'Computer', image: DIR + 'Hardware-My-Computer-3-icon.png', style: 'image'}); | |||
| edges.push({from: 2, to: i, length: LENGTH_SUB}); | |||
| } | |||
| nodes.push({id: 101, text: 'Printer', image: DIR + 'Hardware-Printer-Blue-icon.png', style: 'image'}); | |||
| edges.push({from: 2, to: 101, length: LENGTH_SUB}); | |||
| nodes.push({id: 102, text: 'Laptop', image: DIR + 'Hardware-Laptop-1-icon.png', style: 'image'}); | |||
| edges.push({from: 3, to: 102, length: LENGTH_SUB}); | |||
| nodes.push({id: 103, text: 'graph drive', image: DIR + 'Network-Drive-icon.png', style: 'image'}); | |||
| edges.push({from: 1, to: 103, length: LENGTH_SUB}); | |||
| nodes.push({id: 104, text: 'Internet', image: DIR + 'System-Firewall-2-icon.png', style: 'image'}); | |||
| edges.push({from: 1, to: 104, length: LENGTH_SUB}); | |||
| for (var i = 200; i <= 201; i++ ) { | |||
| nodes.push({id: i, text: 'Smartphone', image: DIR + 'Hardware-My-PDA-02-icon.png', style: 'image'}); | |||
| edges.push({from: 3, to: i, length: LENGTH_SUB}); | |||
| } | |||
| // specify options | |||
| var options = { | |||
| width: '600px', | |||
| height: '600px', | |||
| stabilize: false // stabilize positions before displaying | |||
| }; | |||
| // create a graph | |||
| graph = new vis.Graph(document.getElementById('mygraph')); | |||
| // draw data | |||
| graph.draw(nodes, edges, options); | |||
| } | |||
| </script> | |||
| </head> | |||
| <body onload="draw()"> | |||
| <div id="mygraph"></div> | |||
| </body> | |||
| </html> | |||
| @ -0,0 +1,73 @@ | |||
| <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> | |||
| <html> | |||
| <head> | |||
| <title>Graph | Shapes</title> | |||
| <style type="text/css"> | |||
| body { | |||
| font: 10pt arial; | |||
| } | |||
| </style> | |||
| <script type="text/javascript" src="../../vis.js"></script> | |||
| <script type="text/javascript"> | |||
| var nodes = null; | |||
| var edges = null; | |||
| var graph = null; | |||
| function draw() { | |||
| nodes = [ | |||
| {id: 1, text: 'circle', style: 'circle', group: 'group_x'}, | |||
| {id: 2, text: 'circle', style: 'circle', group: 'group_x'}, | |||
| {id: 3, text: 'database', style: 'database', group: 'group_x'}, | |||
| {id: 4, text: 'rect', style: 'rect', group: 'group_x'} | |||
| ]; | |||
| edges = [ | |||
| {from: 3, to: 1, style: 'arrow', width: 1}, | |||
| {from: 1, to: 4, style: 'moving-dot', width: 1}, | |||
| {from: 1, to: 2, style: 'moving-arrows', width: 2} | |||
| ]; | |||
| var mainId = 5; | |||
| nodes.push({id: mainId, text: 'styles\nand\nsizes', style: 'rect', group: 'group_main'}); | |||
| var styles = ['dot', 'square', 'triangle', 'triangleDown', 'star']; | |||
| var id = 6; | |||
| for (var size = 1; size < 4; size++) { | |||
| var groupId = id; | |||
| nodes.push({id: id, text: 'size ' + size, style: 'rect', group: 'group' + size}); | |||
| edges.push({from: mainId, to: groupId, color: 'gray', width: size}); | |||
| id++; | |||
| for (var i in styles) { | |||
| if (styles.hasOwnProperty(i)) { | |||
| nodes.push({id: id, value: size, text: styles[i], style: styles[i], group: 'group' + size}); | |||
| edges.push({from: groupId, to: id, color: 'gray', width: size}); | |||
| id++; | |||
| } | |||
| } | |||
| } | |||
| // specify options | |||
| var options = { | |||
| width: '780px', | |||
| height: '600px', | |||
| stabilize: false | |||
| }; | |||
| // Instantiate our graph object. | |||
| graph = new vis.Graph(document.getElementById('mygraph')); | |||
| // Draw our graph with the created data and options | |||
| graph.draw(nodes, edges, options); | |||
| } | |||
| </script> | |||
| </head> | |||
| <body onload="draw()"> | |||
| <div id="mygraph"></div> | |||
| <div id="info"></div> | |||
| </body> | |||
| </html> | |||
| @ -0,0 +1,96 @@ | |||
| <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> | |||
| <html> | |||
| <head> | |||
| <title>Graph | Social Network</title> | |||
| <style> | |||
| body {font: 10pt arial;} | |||
| </style> | |||
| <script type="text/javascript" src="http://www.google.com/jsapi"></script> | |||
| <script type="text/javascript" src="../../vis.js"></script> | |||
| <script type="text/javascript"> | |||
| var nodes = null; | |||
| var edges = null; | |||
| var graph = null; | |||
| var DIR = 'img/soft-scraps-icons/'; | |||
| google.load('visualization', '1'); | |||
| // Set callback to run when API is loaded | |||
| google.setOnLoadCallback(drawVisualization); | |||
| // Called when the Visualization API is loaded. | |||
| function drawVisualization() { | |||
| // Create a data table with nodes. | |||
| nodes = new google.visualization.DataTable(); | |||
| nodes.addColumn('number', 'id'); | |||
| nodes.addColumn('string', 'text'); // optional | |||
| nodes.addColumn('string', 'image'); // optional | |||
| nodes.addColumn('string', 'style'); // optional | |||
| // Create a data table with links. | |||
| edges = new google.visualization.DataTable(); | |||
| edges.addColumn('number', 'from'); | |||
| edges.addColumn('number', 'to'); | |||
| edges.addColumn('number', 'value'); // optional | |||
| edges.addColumn('string', 'color'); // optional | |||
| edges.addColumn('number', 'length'); // optional | |||
| // create people | |||
| nodes.addRow([1, 'Algie', DIR + 'Smiley-Angry-icon.png', 'image']); | |||
| nodes.addRow([2, 'Alston', DIR + 'Smiley-Grin-icon.png', 'image']); | |||
| nodes.addRow([3, 'Barney', DIR + 'User-Administrator-Blue-icon.png', 'image']); | |||
| nodes.addRow([4, 'Coley', DIR + 'User-Administrator-Green-icon.png', 'image']); | |||
| nodes.addRow([5, 'Grant', DIR + 'User-Coat-Blue-icon.png', 'image']); | |||
| nodes.addRow([6, 'Langdon', DIR + 'User-Coat-Green-icon.png', 'image']); | |||
| nodes.addRow([7, 'Lee', DIR + 'User-Coat-Red-icon.png', 'image']); | |||
| nodes.addRow([8, 'Merlin', DIR + 'User-Executive-Green-icon.png', 'image']); | |||
| nodes.addRow([9, 'Mick', DIR + 'User-Preppy-Blue-icon.png', 'image']); | |||
| nodes.addRow([10, 'Tod', DIR + 'User-Preppy-Red-icon.png', 'image']); | |||
| // create connections | |||
| var color = '#BFBFBF'; | |||
| var len = 100; // pixels | |||
| var len = undefined; | |||
| edges.addRow([2, 8, 3, color, len]); | |||
| edges.addRow([2, 9, 5, color, len]); | |||
| edges.addRow([2, 10, 1, color, len]); | |||
| edges.addRow([4, 6, 8, color, len]); | |||
| edges.addRow([5, 7, 2, color, len]); | |||
| edges.addRow([4, 5, 1, color, len]); | |||
| edges.addRow([9, 10, 2, color, len]); | |||
| edges.addRow([2, 3, 6, color, len]); | |||
| edges.addRow([3, 9, 4, color, len]); | |||
| edges.addRow([5, 3, 1, color, len]); | |||
| edges.addRow([2, 7, 4, color, len]); | |||
| // specify options | |||
| var options = { | |||
| width: '600px', | |||
| height: '600px', | |||
| backgroundColor: { | |||
| fill: '#F3F3F3' | |||
| } | |||
| }; | |||
| // Instantiate our graph object. | |||
| graph = new vis.Graph(document.getElementById('mygraph')); | |||
| // Draw our graph with the created data and options | |||
| graph.draw(nodes, edges, options); | |||
| } | |||
| </script> | |||
| </head> | |||
| <body> | |||
| <div id="mygraph"></div> | |||
| <p> | |||
| Icons: <a href="http://www.deleket.com/" target="_blank">Scrap Icons by Deleket</a> | |||
| </p> | |||
| <div id="info"></div> | |||
| </body> | |||
| </html> | |||
| @ -0,0 +1,140 @@ | |||
| <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> | |||
| <html> | |||
| <head> | |||
| <title>Graph | Groups</title> | |||
| <style> | |||
| body {font: 10pt arial;} | |||
| </style> | |||
| <script type="text/javascript" src="http://www.google.com/jsapi"></script> | |||
| <script type="text/javascript" src="../../vis.js"></script> | |||
| <script type="text/javascript"> | |||
| var nodes = null; | |||
| var edges = null; | |||
| var graph = null; | |||
| google.load('visualization', '1'); | |||
| // Set callback to run when API is loaded | |||
| google.setOnLoadCallback(draw); | |||
| // Called when the Visualization API is loaded. | |||
| function draw() { | |||
| // Create and populate a data table. | |||
| nodes = new google.visualization.DataTable(); | |||
| nodes.addColumn('number', 'id'); | |||
| nodes.addColumn('string', 'text'); | |||
| nodes.addColumn('number', 'group'); | |||
| edges = new google.visualization.DataTable(); | |||
| edges.addColumn('number', 'from'); | |||
| edges.addColumn('number', 'to'); | |||
| edges.addColumn('number', 'length'); | |||
| edges.addColumn('string', 'color'); | |||
| var color = 'gray'; | |||
| var len = undefined; | |||
| // randomly create some nodes | |||
| var nodeCount = parseInt(document.getElementById('nodeCount').value); | |||
| var nodeOffset = 0; | |||
| var groupMin = 0; | |||
| var groupMax = parseInt(document.getElementById('groupCount').value); | |||
| var group = groupMin; | |||
| var groupLeader = new Array(); // will contain the node id with the most links of each group | |||
| while (group < groupMax) { | |||
| // randomly create some nodes | |||
| var i = 0; | |||
| var cols = parseInt(Math.sqrt(nodeCount)); | |||
| var connectionCount = new Array(); | |||
| while (i < nodeCount) { | |||
| nodes.addRow([i + nodeOffset, i + nodeOffset + '', group]); | |||
| connectionCount[i] = 0; | |||
| // create links in a scale-free-graph way | |||
| if (i == 1) { | |||
| var from = i; | |||
| var to = 0; | |||
| edges.addRow([from + nodeOffset, to + nodeOffset, len, color]); | |||
| connectionCount[from]++; | |||
| connectionCount[to]++; | |||
| } | |||
| else if (i > 1) { | |||
| var conn = (i - 1) * 2; | |||
| var rand = Math.floor(Math.random() * conn); | |||
| var cum = 0; | |||
| var j = 0; | |||
| while (j < connectionCount.length && cum < rand) { | |||
| cum += connectionCount[j]; | |||
| j++; | |||
| } | |||
| var from = i; | |||
| var to = j; | |||
| edges.addRow([from + nodeOffset, to + nodeOffset, len, color]); | |||
| connectionCount[from]++; | |||
| connectionCount[to]++; | |||
| } | |||
| i++; | |||
| } | |||
| // calculate the node with the most number of connections | |||
| var leader = 0; | |||
| for (c in connectionCount) { | |||
| if (connectionCount[c] > connectionCount[leader]) | |||
| leader = parseInt(c); | |||
| } | |||
| if (group > groupMin) { | |||
| // connect to the leader of this group to the leader of a random other group | |||
| var from = leader + nodeOffset; | |||
| var to = groupLeader[groupMin + parseInt(Math.random() * (group - groupMin))]; | |||
| edges.addRow([from, to, len, color]); | |||
| } | |||
| // add this leader to the list | |||
| groupLeader[group] = leader + nodeOffset; | |||
| nodeOffset += nodeCount; | |||
| group++; | |||
| } | |||
| // specify options | |||
| var options = { | |||
| width: '600px', | |||
| height: '600px', | |||
| stabilize: false, | |||
| nodes: { | |||
| style: 'dot' | |||
| }, | |||
| edges: { | |||
| length: 50 | |||
| } | |||
| }; | |||
| // Instantiate our graph object. | |||
| graph = new vis.Graph(document.getElementById('mygraph')); | |||
| // Draw our graph with the created data and options | |||
| graph.draw(nodes, edges, options); | |||
| } | |||
| </script> | |||
| </head> | |||
| <body> | |||
| <form onsubmit= "javascript: draw(); return false;"> | |||
| Number of groups: | |||
| <input type="text" value="6" id="groupCount" style="width: 50px;"> | |||
| Number of nodes per group: | |||
| <input type="text" value="7" id="nodeCount" style="width: 50px;"> | |||
| <input type="submit" value="Go"> | |||
| </form> | |||
| <br> | |||
| <div id="mygraph"></div> | |||
| <div id="info"></div> | |||
| </body> | |||
| </html> | |||
| @ -0,0 +1,67 @@ | |||
| <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> | |||
| <html> | |||
| <head> | |||
| <title>Graph | Selections</title> | |||
| <script type="text/javascript" src="../../vis.js"></script> | |||
| </head> | |||
| <body> | |||
| <div id="mygraph"></div> | |||
| <div id="info"></div> | |||
| <script type="text/javascript"> | |||
| // create an array with nodes | |||
| var nodes = [ | |||
| {id: 1, text: 'Node 1'}, | |||
| {id: 2, text: 'Node 2'}, | |||
| {id: 3, text: 'Node 3'}, | |||
| {id: 4, text: 'Node 4'}, | |||
| {id: 5, text: 'Node 5'} | |||
| ]; | |||
| // create an array with edges | |||
| var edges = [ | |||
| {from: 1, to: 2}, | |||
| {from: 1, to: 3}, | |||
| {from: 2, to: 4}, | |||
| {from: 2, to: 5} | |||
| ]; | |||
| // specify options | |||
| var options = { | |||
| width: '400px', | |||
| height: '400px' | |||
| }; | |||
| // create a graph | |||
| var graph = new vis.Graph(document.getElementById('mygraph')); | |||
| // draw the graph with the created data and options | |||
| graph.draw(nodes, edges, options); | |||
| // add event listener | |||
| function onSelect() { | |||
| var selection = graph.getSelection(); | |||
| var info = 'selection: '; | |||
| selection.forEach(function (s) { | |||
| info += s.row + ' '; | |||
| }); | |||
| document.getElementById('info').innerHTML += info + '<br>'; | |||
| } | |||
| vis.events.addListener(graph, 'select', onSelect); | |||
| // set initial selection (row based, zero-based) | |||
| var selection = [ | |||
| {'row': 2}, | |||
| {'row': 3}, | |||
| {'row': 4} | |||
| ]; | |||
| graph.setSelection(selection); | |||
| </script> | |||
| </body> | |||
| </html> | |||
| @ -0,0 +1,82 @@ | |||
| <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> | |||
| <html> | |||
| <head> | |||
| <title>Graph | Scalable images</title> | |||
| <style type="text/css"> | |||
| body { | |||
| font: 10pt arial; | |||
| } | |||
| </style> | |||
| <script type="text/javascript" src="../../vis.js"></script> | |||
| <script type="text/javascript"> | |||
| var DIR = 'img/soft-scraps-icons/'; | |||
| var nodes = null; | |||
| var edges = null; | |||
| var graph = null; | |||
| // Called when the Visualization API is loaded. | |||
| function draw() { | |||
| // create people. | |||
| // value corresponds with the age of the person | |||
| var DIR = 'img/soft-scraps-icons/'; | |||
| nodes = [ | |||
| {id: 1, value: 2, style: 'image', text: 'Algie', title: 'Algie (2 years old)', image: DIR + 'Smiley-Angry-icon.png'}, | |||
| {id: 2, value: 31, style: 'image', text: 'Alston', title: 'Alston (31 years old)', image: DIR + 'Smiley-Grin-icon.png'}, | |||
| {id: 3, value: 12, style: 'image', text: 'Barney', title: 'Barney (12 years old)', image: DIR + 'User-Administrator-Blue-icon.png'}, | |||
| {id: 4, value: 16, style: 'image', text: 'Coley', title: 'Coley (16 years old)', image: DIR + 'User-Administrator-Green-icon.png'}, | |||
| {id: 5, value: 17, style: 'image', text: 'Grant', title: 'Grant (17 years old)', image: DIR + 'User-Coat-Blue-icon.png'}, | |||
| {id: 6, value: 15, style: 'image', text: 'Langdon', title: 'Langdon (15 years old)', image: DIR + 'User-Coat-Green-icon.png'}, | |||
| {id: 7, value: 6, style: 'image', text: 'Lee', title: 'Lee (6 years old)', image: DIR + 'User-Coat-Red-icon.png'}, | |||
| {id: 8, value: 5, style: 'image', text: 'Merlin', title: 'Merlin (5 years old)', image: DIR + 'User-Executive-Green-icon.png'}, | |||
| {id: 9, value: 30, style: 'image', text: 'Mick', title: 'Mick (30 years old)', image: DIR + 'User-Preppy-Blue-icon.png'}, | |||
| {id: 10, value: 18, style: 'image', text: 'Tod', title: 'Tod (18 years old)', image: DIR + 'User-Preppy-Red-icon.png'} | |||
| ]; | |||
| // create connetions between people | |||
| // value corresponds with the amount of contact between two people | |||
| edges = [ | |||
| {from: 2, to: 8, value: 3, title: '3 emails per week'}, | |||
| {from: 2, to: 9, value: 5, title: '5 emails per week'}, | |||
| {from: 2, to: 10,value: 1, title: '1 emails per week'}, | |||
| {from: 4, to: 6, value: 8, title: '8 emails per week'}, | |||
| {from: 5, to: 7, value: 2, title: '2 emails per week'}, | |||
| {from: 4, to: 5, value: 1, title: '1 emails per week'}, | |||
| {from: 9, to: 10,value: 2, title: '2 emails per week'}, | |||
| {from: 2, to: 3, value: 6, title: '6 emails per week'}, | |||
| {from: 3, to: 9, value: 4, title: '4 emails per week'}, | |||
| {from: 5, to: 3, value: 1, title: '1 emails per week'}, | |||
| {from: 2, to: 7, value: 4, title: '4 emails per week'} | |||
| ]; | |||
| // specify options | |||
| var options = { | |||
| width: '600px', | |||
| height: '600px', | |||
| nodes: { | |||
| widthMin: 20, // min width in pixels | |||
| widthMax: 100 // max width in pixels | |||
| }, | |||
| edges: { | |||
| color: 'lightgray' | |||
| } | |||
| }; | |||
| // Instantiate our graph object. | |||
| graph = new vis.Graph(document.getElementById('mygraph')); | |||
| // Draw our graph with the created data and options | |||
| graph.draw(nodes, edges, options); | |||
| } | |||
| </script> | |||
| </head> | |||
| <body onload="draw()"> | |||
| <div id="mygraph"></div> | |||
| <div id="info"></div> | |||
| </body> | |||
| </html> | |||
| @ -0,0 +1,37 @@ | |||
| <!DOCTYPE HTML> | |||
| <html> | |||
| <head> | |||
| <title>Graph | DOT Language</title> | |||
| <script type="text/javascript" src="../../vis.js"></script> | |||
| <style type="text/css"> | |||
| html, body, #graph { | |||
| width: 100%; | |||
| height: 100%; | |||
| padding: 0; | |||
| margin: 0; | |||
| } | |||
| </style> | |||
| </head> | |||
| <body> | |||
| <div id="graph"></div> | |||
| <script type="text/javascript"> | |||
| // create a network view | |||
| var graph = new vis.Graph(document.getElementById('graph')); | |||
| // parse data in DOT-notation | |||
| var dot = 'digraph {node[shape=circle]; 1 -> 1 -> 2; 2 -> 3; 2 -- 4; 2 -> 1 }'; | |||
| var data = vis.Graph.util.DOTToGraph(dot); | |||
| // draw the data | |||
| graph.draw(data.nodes, data.edges, data.options); | |||
| // resize the network when window resizes | |||
| window.onresize = function () { | |||
| graph.redraw() | |||
| }; | |||
| </script> | |||
| </body> | |||
| </html> | |||
| @ -0,0 +1,212 @@ | |||
| <!DOCTYPE HTML> | |||
| <html> | |||
| <head> | |||
| <title>Graph | DOT language playground</title> | |||
| <script type="text/javascript" src="../../vis.js"></script> | |||
| <style type="text/css"> | |||
| body, html { | |||
| font: 10pt sans; | |||
| width: 100%; | |||
| height: 100%; | |||
| padding: 0; | |||
| margin: 0; | |||
| color: #4d4d4d; | |||
| } | |||
| #frame { | |||
| width: 100%; | |||
| height: 99%; | |||
| } | |||
| #frame td { | |||
| padding: 10px; | |||
| } | |||
| #error { | |||
| color: red; | |||
| } | |||
| #data { | |||
| float: left; | |||
| width: 100%; | |||
| height: 100%; | |||
| border: 1px solid #d3d3d3; | |||
| } | |||
| #graph { | |||
| float: left; | |||
| width: 100%; | |||
| height: 100%; | |||
| } | |||
| textarea.example { | |||
| display: none; | |||
| } | |||
| </style> | |||
| </head> | |||
| <body> | |||
| <table id="frame"> | |||
| <col width="50%"> | |||
| <col width="50%"> | |||
| <tr> | |||
| <td colspan="2" style="height: 50px;"> | |||
| <h1>Directed graph from data in DOT language</h1> | |||
| <div> | |||
| <a href="javascript: drawExample('example1')">example 1</a> | |||
| <a href="javascript: drawExample('example2')">example 2</a> | |||
| <a href="javascript: drawExample('example3')">example 3</a> | |||
| </div> | |||
| <div> | |||
| <br> | |||
| <button id="draw">Draw</button> | |||
| <span id="error"></span> | |||
| </div> | |||
| </td> | |||
| </tr> | |||
| <tr> | |||
| <td> | |||
| <textarea id="data"></textarea> | |||
| </td> | |||
| <td> | |||
| <div id="graph"></div> | |||
| </td> | |||
| </tr> | |||
| </table> | |||
| <script type="text/javascript"> | |||
| var graph, data; | |||
| var btnDraw = document.getElementById('draw'); | |||
| var txtData = document.getElementById('data'); | |||
| var txtError = document.getElementById('error'); | |||
| btnDraw.onclick = draw; | |||
| // resize the graph when window resizes | |||
| window.onresize = function () { | |||
| graph.redraw() | |||
| }; | |||
| // parse and draw the data | |||
| function draw () { | |||
| try { | |||
| // create a graph | |||
| graph = new vis.Graph(document.getElementById('graph')); | |||
| txtError.innerHTML = ''; | |||
| // parse the data from DOT-notation | |||
| data = vis.Graph.util.DOTToGraph(txtData.value); | |||
| // draw the data in the graph view | |||
| var options = data.options; | |||
| options.width = '100%'; | |||
| //options.links.length = options.links.length; | |||
| options.height = '100%'; | |||
| //options.nodes.radius = 20; | |||
| //options.links.width = 2; | |||
| graph.draw(data.nodes, data.edges, options); | |||
| } | |||
| catch (err) { | |||
| // set the cursor at the position where the error occurred | |||
| var match = /\(char (.*)\)/.exec(err); | |||
| if (match) { | |||
| var pos = Number(match[1]); | |||
| if(txtData.setSelectionRange) { | |||
| txtData.focus(); | |||
| txtData.setSelectionRange(pos, pos); | |||
| } | |||
| } | |||
| // show an error message | |||
| txtError.innerHTML = err.toString(); | |||
| } | |||
| } | |||
| /** | |||
| * Draw an example | |||
| * @param {String} id HTML id of the textarea containing the example code | |||
| */ | |||
| function drawExample(id) { | |||
| txtData.value = document.getElementById(id).value; | |||
| draw(); | |||
| } | |||
| </script> | |||
| <textarea id="example1" class="example"> | |||
| digraph { | |||
| node [style=circle fontSize=16] | |||
| edge [length=100, color=gray, fontColor=black] | |||
| A -> A[text=0.5]; | |||
| B -> B[text=1.2] -> C[text=0.7] -- A; | |||
| B -> D; | |||
| D -> B; | |||
| D -> C; | |||
| D -> E[text=0.2]; | |||
| F -> F; | |||
| A [ | |||
| fontColor=red, | |||
| borderColor=red, | |||
| backgroundColor=white, | |||
| highlightColor=white | |||
| ] | |||
| } | |||
| </textarea> | |||
| <textarea id="example2" class="example"> | |||
| digraph topology | |||
| { | |||
| node[shape=circle fontSize=12] | |||
| edge[length=170 fontSize=12] | |||
| "10.0.255.1" -> "10.0.255.3"[label="1.000"]; | |||
| "10.0.255.1" -> "10.0.255.2"[label="1.000"]; | |||
| "10.0.255.1" -> "10.0.255.2"[label="1.000"]; | |||
| "10.0.255.1" -> "10.0.255.3"[label="1.000"]; | |||
| "10.0.255.2" -> "10.0.255.1"[label="1.000"]; | |||
| "10.0.255.2" -> "10.0.255.3"[label="1.000"]; | |||
| "10.0.255.3" -> "10.0.255.1"[label="1.000"]; | |||
| "10.0.255.3" -> "10.0.255.2"[label="1.000"]; | |||
| "10.0.255.3" -> "10.0.3.0/24"[label="HNA", style=solid]; | |||
| "10.0.3.0/24"[shape=rect]; | |||
| "10.0.255.2" -> "10.0.2.0/24"[label="HNA"]; | |||
| "10.0.2.0/24"[shape=rect]; | |||
| "10.0.255.1" -> "10.0.1.0/24"[label="HNA"]; | |||
| "10.0.1.0/24"[shape=rect]; | |||
| } | |||
| </textarea> | |||
| <textarea id="example3" class="example"> | |||
| digraph G { | |||
| // note: not all attributes are recognized and supported by Network | |||
| // unrecognized attributes are ignored | |||
| node[width=.25,height=.375,fontsize=15] | |||
| node [style=filled fillcolor=#F1AAF0] | |||
| 0-> 0 ; | |||
| 1-> 1 ; | |||
| 2-> 2 ; | |||
| 3-> 3 ; | |||
| 4-> 4 ; | |||
| 5-> 5 ; | |||
| 6-> 6 ; | |||
| 7-> 5 ; | |||
| 8-> 8 ; | |||
| 9-> 9 ; | |||
| 10-> 10 ; | |||
| 11-> 10 ; | |||
| 12-> 12 ; | |||
| 13-> 5 ; | |||
| 14-> 10 ; | |||
| 15-> 0 ; | |||
| } | |||
| </textarea> | |||
| <script> | |||
| // draw example1 now | |||
| drawExample('example1'); | |||
| </script> | |||
| </body> | |||
| </html> | |||
| @ -0,0 +1,14 @@ | |||
| Refresh Cl icon set | |||
| http://www.iconarchive.com/show/refresh-cl-icons-by-tpdkdesign.net.html | |||
| http://www.iconarchive.com/artist/tpdkdesign.net.html | |||
| Artist: TpdkDesign.net | |||
| License: Free for non-commercial use. | |||
| Name: TpdkDesign.net | |||
| URL: http://www.tpdkdesign.net | |||
| Available for custom work: No | |||
| Default License: Free for non-commercial use. | |||
| Commercial usage: Not allowed | |||
| @ -0,0 +1,12 @@ | |||
| Scrap Icons by Deleket | |||
| http://www.iconarchive.com/show/soft-scraps-icons-by-deleket.html | |||
| Artist: Deleket (Jojo Mendoza) (Available for custom work) | |||
| License: CC Attribution-Noncommercial-No Derivate 3.0 | |||
| http://creativecommons.org/licenses/by-nc-nd/3.0/ | |||
| Commercial usage: Allowed (Author Approval required -> Visit artist homepage for details). | |||