我有非常有趣的布局问题。
我有足球比赛数据,尤其是球员和球队队长之间成功的传球数量。我们不在乎不是球队队长之间的球员之间的传球。
因此,根节点将是船长,每个叶子都会呈现每个播放器,我们要拥有的所有链接只是根节点和每个叶子节点之间的链接。叶子之间没有链接。
我希望根节点位于图的中心,并根据船长和玩家之间的成功通过的数量,我们将决定根节点和叶子之间的链接长度。通过的通行证越多,链接的时间就越长。
我很想为此使用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]);