14

我正在使用力布局来表示有向未加权网络。我的灵感来自以下示例:http ://bl.ocks.org/mbostock/1153292

在此处输入图像描述

我的问题是,在我的情况下,节点之间的链接要多得多,我觉得给定一个始终相同的固定链接距离对我的布局来说是一个很大的限制。

是否可以设置一个动态linkDistance的,如果它有助于减少图表内的链接交叉,则链接的长度会增加?

4

2 回答 2

14

文档中

force.linkDistance([距离])

如果指定了距离,则将链接节点之间的目标距离设置为指定值。如果未指定距离,则返回布局的当前链接距离,默认为 20。如果距离为常数,则所有链接的距离相同。否则,如果 distance 是一个函数,则为每个链接(按顺序)评估该函数,传递链接及其索引,并将 this 上下文作为强制布局;然后使用该函数的返回值来设置每个链接的距离。每当布局开始时,都会评估该函数。通常,距离以像素为单位;但是,单位相对于布局的大小是任意的。

请注意,链接距离仍会在布局运行时进行调整。您可能还会发现设置linkStrength()很有用。

于 2013-05-15T14:32:50.450 回答
7

只需两步:

Step1:在main json中添加参数如下:

{源:“微软”,目标:“亚马逊”,类型:“许可”,值:60},{源:“微软”,目标:“HTC”,类型:“许可”,值:60},{源: "Samsung", 目标: "Apple", 类型: "suit",value:60},

Step2:更新linkdistance以接受方法。

.linkDistance(function(d) { return  d.value; }) 
于 2014-05-12T07:12:35.827 回答