所以我已经有一个页面,它绘制了一个力导向图,就像这里显示的那样。
这很好用。我正在使用这里的 JS ,通过一些调整来更好地分散节点。
这些或多或少是唯一的区别:
d3.json("force.json", function(json) {
var force = d3.layout.force()
.gravity(0.1)
.charge(-2000)
.linkDistance(1)
.linkStrength(0.1)
.nodes(json.nodes)
.links(json.links)
.size([w, h])
.start();
降低链接强度似乎使链接更像弹簧,因此它变得类似于经常使用的Fruchterman & Reingold技术。这工作得相当好,但仅适用于相当小的图形。对于较大的图表,交叉点的数量只会增加 - 正如人们所期望的那样,但它所采用的解决方案通常远非最佳。我不是在寻找获得最佳解决方案的方法,我知道这非常困难。我只是希望它有一些粗略的添加,试图将线条和节点分开。
有没有办法在链接之间以及节点之间添加排斥?我不熟悉 D3 force 的工作方式,我似乎找不到任何说这是可能的...