D3布局:类似树状的结构,但链路长度有所不同



我有非常有趣的布局问题。

我有足球比赛数据,尤其是球员和球队队长之间成功的传球数量。我们不在乎不是球队队长之间的球员之间的传球。

因此,根节点将是船长,每个叶子都会呈现每个播放器,我们要拥有的所有链接只是根节点和每个叶子节点之间的链接。叶子之间没有链接。

我希望根节点位于图的中心,并根据船长和玩家之间的成功通过的数量,我们将决定根节点和叶子之间的链接长度。通过的通行证越多,链接的时间就越长。

我很想为此使用D3力布局,因为我不希望玩家节点重叠一个。我在这种方法上有一些问题。我遇到的主要问题和我在这里的原因是,力布局似乎不允许我在节点之间具有不同的链接长度。对于其他布局或自定义布局,恐怕是否有任何方法可以避免重叠节点。

我已经准备好进行数学计算,但是您知道,如果我可以从任何D3布局开始。

关于D3布局的任何建议供我开始?

任何帮助将不胜感激。谢谢。

您可以在力布局中设置链接距离作为链接数据的函数。但是,这仅是"理想"距离,实际距离将受到工作中其他力量的影响。为了使显示距离与理想的距离非常匹配,您也可以将链接强度设置为1-但即使如此,您也会得到一些"弹性"。

示例:http://jsfiddle.net/csn6w/15/

var force = d3.layout.force()
    .on("tick", tick)
    .charge(-80)
    .linkDistance(function(d){return d.target.dist * 100;})
    .linkStrength(1)
    .friction(0.95)
    .size([w, h]);

最新更新