使节点间距在vis.js中动态变化

时间:2016-06-09 12:43:53

标签: javascript physics vis.js

我试图想象一些图表。不幸的是,当一个节点与另一个节点重叠时,我常常会遇到这种情

设置nodeSpacing选项并不适合我,因为某些节点标签非常长而有些节点标签很短。有没有设置动态定位的选项?以下是我的选择:

    var options = {
         layout:{
             hierarchical: {
                 enabled:true,
                 parentCentralization: true,
                 direction: 'DU',
                 sortMethod: 'directed'
                }
         },
         edges:{
             arrows: 'from'
         }
 }

1 个答案:

答案 0 :(得分:5)

Physics options hierarchicalRepulsion中有一个physics: { enabled: true, hierarchicalRepulsion: { centralGravity: 0.0, springLength: 500, springConstant: 0.01, nodeDistance: 400, damping: 0.09 }, solver: 'hierarchicalRepulsion' } 选项,您可以使用它 - 这一切都取决于您的图表,我猜。我采用了分层布局的基本示例,并添加了很长的标签名称并使用了此配置:

springLength

我使用了nodeDistancevar arrayNum = ['One', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine']; var singleRandom = arrayNum[Math.floor(Math.random() * arrayNum.length)]; alert(singleRandom); 的大值,这就是你可以得到的东西:

enter image description here

放大一点,所以你可以看到字幕:

enter image description here

虽然在层次结构中仍然存在一些重叠 - 但它为您提供了一个起点。

另外,考虑一下真正长字幕的可用性 - 在某些时候你可能想要开始使用工具提示和其他解决方法。再一次 - 一切都取决于你的网络。

祝你好运 - 它是一个很棒的图书馆!