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.

139 lines
3.0 KiB

  1. <!doctype html>
  2. <html>
  3. <head>
  4. <title>Graph | Random nodes</title>
  5. <style type="text/css">
  6. body {
  7. font: 10pt sans;
  8. }
  9. #mygraph {
  10. width: 600px;
  11. height: 600px;
  12. border: 1px solid lightgray;
  13. }
  14. </style>
  15. <script type="text/javascript" src="../../dist/vis.js"></script>
  16. <script type="text/javascript">
  17. var nodes = null;
  18. var edges = null;
  19. var graph = null;
  20. function draw() {
  21. nodes = [];
  22. edges = [];
  23. var connectionCount = [];
  24. // randomly create some nodes and edges
  25. for (var i = 0; i < 15; i++) {
  26. nodes.push({
  27. id: i,
  28. label: String(i)
  29. });
  30. }
  31. edges.push({
  32. from: 0,
  33. to: 1
  34. });
  35. edges.push({
  36. from: 0,
  37. to: 6
  38. });
  39. edges.push({
  40. from: 0,
  41. to: 13
  42. });edges.push({
  43. from: 0,
  44. to: 11
  45. });
  46. edges.push({
  47. from: 1,
  48. to: 2
  49. });
  50. edges.push({
  51. from: 2,
  52. to: 3
  53. });
  54. edges.push({
  55. from: 2,
  56. to: 4
  57. });
  58. edges.push({
  59. from: 3,
  60. to: 5
  61. });
  62. edges.push({
  63. from: 1,
  64. to: 10
  65. });
  66. edges.push({
  67. from: 1,
  68. to: 7
  69. });
  70. edges.push({
  71. from: 2,
  72. to: 8
  73. });
  74. edges.push({
  75. from: 2,
  76. to: 9
  77. });
  78. edges.push({
  79. from: 3,
  80. to: 14
  81. });
  82. edges.push({
  83. from: 1,
  84. to: 12
  85. });
  86. nodes[0]["level"] = 0;
  87. nodes[1]["level"] = 1;
  88. nodes[2]["level"] = 3;
  89. nodes[3]["level"] = 4;
  90. nodes[4]["level"] = 4;
  91. nodes[5]["level"] = 5;
  92. nodes[6]["level"] = 1;
  93. nodes[7]["level"] = 2;
  94. nodes[8]["level"] = 4;
  95. nodes[9]["level"] = 4;
  96. nodes[10]["level"] = 2;
  97. nodes[11]["level"] = 1;
  98. nodes[12]["level"] = 2;
  99. nodes[13]["level"] = 1;
  100. nodes[14]["level"] = 5;
  101. // create a graph
  102. var container = document.getElementById('mygraph');
  103. var data = {
  104. nodes: nodes,
  105. edges: edges
  106. };
  107. var options = {
  108. hierarchicalLayout:true
  109. };
  110. graph = new vis.Graph(container, data, options);
  111. // add event listeners
  112. graph.on('select', function(params) {
  113. document.getElementById('selection').innerHTML = 'Selection: ' + params.nodes;
  114. });
  115. }
  116. </script>
  117. </head>
  118. <body onload="draw();">
  119. <h2>Hierarchical Layout - User-defined</h2>
  120. <div style="width:700px; font-size:14px;">
  121. This example shows a user-defined hierarchical layout. If the user defines levels for nodes but does not do so for all nodes, an alert will show up and hierarchical layout will be disabled. Either all or none can be defined.
  122. </div>
  123. <br />
  124. <div id="mygraph"></div>
  125. <p id="selection"></p>
  126. </body>
  127. </html>