我正在使用强制布局来表示定向的未加权网络。我的灵感来自以下示例:http://bl.ocks.org/mbostock/1153292
我的问题是,在我的情况下,节点之间有更多的链接,我觉得提供一个固定的linkDistance,总是相同的,对我的布局来说是一个非常大的约束。
是否可以设置动态linkDistance
,以便链接长度增加,如果它有助于减少图表中的链接交叉?
答案 0 :(得分:14)
force.linkDistance([距离])
如果指定了距离,则将链接节点之间的目标距离设置为指定值。如果未指定距离,则返回布局的当前链接距离,默认为20.如果距离是常量,则所有链接的距离都相同。 否则,如果distance是一个函数,则为每个链接(按顺序)计算函数,传递链接及其索引,并将此上下文作为强制布局;然后使用函数的返回值来设置每个链接的距离。无论何时布局开始,都会评估该函数。通常,距离以像素为单位指定;但是,单位相对于布局的大小是任意的。
请注意,布局运行时仍会调整链接距离。您还可以找到有用的设置linkStrength()
。
答案 1 :(得分:7)
只需两步:
步骤1:在主json中添加一个参数,如下所示:
{来源:"微软",目标:"亚马逊",输入:"许可",价值:60}, {来源:"微软",目标:" HTC",输入:"许可",价值:60}, {来源:"三星",目标:" Apple",输入:"西装",价值:60},
步骤2:将linkdistance更新为accept方法。
.linkDistance(function(d) { return d.value; })