functionstartNetwork() { // this list is kept to remove a random node.. we do not add node 1 here because it's used for changes nodeIds = [2, 3, 4, 5]; shadowState = false; // create an array with nodes 每个节点有一个唯一的 id ,label 为节点的标签 nodesArray = [ {id: 1, label: 'Node 1'}, {id: 2, label: 'Node 2'}, {id: 3, label: 'Node 3'}, {id: 4, label: 'Node 4'}, {id: 5, label: 'Node 5'} ]; //使用 DataSet 函数将节点和边转化为 vis 节点和边对象 nodes = new vis.DataSet(nodesArray); // create an array with edges 每条边有入度和出度,调用节点 id edgesArray = [ {from: 1, to: 3}, {from: 1, to: 2}, {from: 2, to: 4}, {from: 2, to: 5} ]; edges = new vis.DataSet(edgesArray); // create a network 渲染 network 需要 Dom 中有一个 id 为 mynetwork 的 div 作为容器 var container = document.getElementById('mynetwork'); //设置渲染数据和参数,用 Network 函数生成即可。可以通过设置 options 来生成自定义 network var data = { nodes: nodes, edges: edges }; var options = {}; network = new vis.Network(container, data, options); }
添加一个随机生成的节点
1 2 3 4 5 6
functionaddNode() { //random() 方法可返回介于 0 ~ 1 之间的一个随机数,1e7表示10000000 //Number.toString():将数字转换为字符串。用它的参数指定的基数或底数(底数范围为2-36)。如果省略参数,则使用基数10。当参数值为2时,返回二进制数。,并返回结果 var newId = (Math.random() * 1e7).toString(32); nodes.add({id:newId, label:"I'm new!"}); }
// create an array with edges edges = new vis.DataSet(); edges.on('*', function () { document.getElementById('edges').innerHTML = JSON.stringify(edges.get(), null, 4); }); edges.add([ {id: '1', from: '1', to: '2'}, {id: '2', from: '1', to: '3'}, {id: '3', from: '2', to: '4'}, {id: '4', from: '2', to: '5'} ]);
// create a network var container = document.getElementById('network'); var data = { nodes: nodes, edges: edges }; var options = {}; network = new vis.Network(container, data, options);