我已经实现了d3的力布局。然而,对我来说问题是布局没有在屏幕上传播。以下是快照:
我希望节点以动态链接距离在屏幕上展开,因为右侧和左侧有很多空白区域。我试着按如下方式随机化链接距离:
d3.layout.force()
.charge(-800)
.linkDistance(function(d){
return (Math.random() * (400 - 200) + 1);
})
.size([w, h]);
这增加了链接距离,但也增加了垂直方向。我事件尝试设置linkStrength()属性,但它只是对我不起作用。如何才能使此布局仅在水平方向上分布在整个区域?有没有办法我们可以定义链接距离以适合我页面的矩形区域?
答案 0 :(得分:3)
我看到的一个解决方案是使用this bounding box example以矩形/水平方式绑定绘图,然后将电荷设置为非常高的水平(目标为-10000,类似于此),以便节点传播在被你设定的界限停止之前达到最大值。然后,您可以选择在节点的右侧或左侧设置文本,具体取决于其位置,以便不切割。或者你也可以绑定文本。