D3力布局中的动态链接距离

时间:2013-08-30 06:54:08

标签: javascript d3.js force-layout

我已经实现了d3的力布局。然而,对我来说问题是布局没有在屏幕上传播。以下是快照:

enter image description here

我希望节点以动态链接距离在屏幕上展开,因为右侧和左侧有很多空白区域。我试着按如下方式随机化链接距离:

d3.layout.force()
    .charge(-800)
    .linkDistance(function(d){
        return (Math.random() * (400 - 200) + 1);
    })
    .size([w, h]);

这增加了链接距离,但也增加了垂直方向。我事件尝试设置linkStrength()属性,但它只是对我不起作用。如何才能使此布局仅在水平方向上分布在整个区域?有没有办法我们可以定义链接距离以适合我页面的矩形区域?

1 个答案:

答案 0 :(得分:3)

我看到的一个解决方案是使用this bounding box example以矩形/水平方式绑定绘图,然后将电荷设置为非常高的水平(目标为-10000,类似于此),以便节点传播在被你设定的界限停止之前达到最大值。然后,您可以选择在节点的右侧或左侧设置文本,具体取决于其位置,以便不切割。或者你也可以绑定文本。