2017-07-13 32 views
0

我想,使各节点的一些团体在我的图形行为不同于其他节点。 例如,我有一个名为属性的组,我动态添加到图中。我需要改变这个组的重力常数或权重,以使它们更接近父节点,然后更接近其余的节点。更改物理 - visjs

example

我希望这个例子可以帮助可视化的问题。 (已有黑色,因为敏感信息的标签)

我怎么会在vis.js

回答

1

//

的Json嗨做到这一点。

见附图代码段。 希望它可以帮助你。

// create an array with nodes 
 
    var nodes = new vis.DataSet([ 
 
    {id: 1, label: 'Node 1', group: 1}, 
 
    {id: 2, label: 'Node 2', group: 2}, 
 
    {id: 3, label: 'Node 3', group: 1}, 
 
    {id: 4, label: 'Node 4', group: 2}, 
 
    {id: 5, label: 'Node 5', group: 2} 
 
    ]); 
 

 
    // create an array with edges 
 
    var edges = new vis.DataSet([ 
 
    {from: 1, to: 3}, 
 
    {from: 2, to: 4}, 
 
    {from: 2, to: 5} 
 
    ]); 
 

 
    // create a network 
 
    var container = document.getElementById('mynetwork'); 
 
    var data = { 
 
    nodes: nodes, 
 
    edges: edges 
 
    }; 
 
    var options = { 
 
    groups: { 
 
     1: { color: 'red', mass: 500 },// try to change this value 
 
     2: { color: 'blue', mass: 5 } 
 
    }, 
 
    physics: true 
 
    }; 
 
    var network = new vis.Network(container, data, options); 
 
#mynetwork { 
 
     width: 600px; 
 
     height: 400px; 
 
     border: 1px solid lightgray; 
 
    } 
 

 
    p { 
 
     max-width: 600px; 
 
    }
<!doctype html> 
 
<html> 
 
<head> 
 
    <title>Network | Basic usage</title> 
 
    <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/vis/4.20.0/vis.min.js"></script> 
 
    <link href="https://cdnjs.cloudflare.com/ajax/libs/vis/4.20.0/vis.min.css" rel="stylesheet" type="text/css"/> 
 
</head> 
 
<body> 
 
<div id="mynetwork"></div> 
 

 

 

 
</body> 
 
</html>

+0

非常感谢!任何方式与其他物理模型一起使用这样的东西?像“forceAtlas2Based”? – Jason

+0

@Jason据我了解应该是一样的。 尝试添加: “边缘”:{ “平稳”:{ “forceDirection”: “无” } }, “物理学”:{ “forceAtlas2Based”:{ “centralGravity”:0.03, “springLength”:100 }, “minVelocity”:0.75, “solver”:“forceAtlas2Based” } 到您的选项。 – TERMIN

+0

thx你一直很好的帮助。奇迹般有效 – Jason