由于这个早期的question,我生成了一个静态固定布局图,如下所示,使用了d3.js中的强制布局。

我有两个具体的问题要进一步定制布局:
首先,我注意到确定地初始化节点位置(例如,在这里对角化,请参阅script中的详细信息)修复节点的位置,节点的方向似乎取决于这个初始化以及力图*的维度。我想知道如何使A, D, E, F, I图上的节点水平地对齐?换句话说,我想把图的方向逆时针旋转大约45度。我尝试在中间水平地初始化节点:
nodes.forEach(function(d, i) { d.x = w / size * i; d.y = h / 2; });但是所产生的输出具有所有节点和边沿水平地初始化它们的位置。
第二,力图自动在svg元素中居中是真的吗?如果没有,我们怎样才能做到呢?如果是,我们如何在svg元素中指定力图的中心?
(*注意:奇怪的是,当为力图设置.size([w, h]) where w = h,并在对角线上确定地初始化节点时,所有节点和边缘都位于输出的对角线上,为什么?)
发布于 2014-01-17 13:59:36
尝试添加一个自定义的重力施加在每一个滴答上,它将节点拉向水平线。就像这样:
force.on('tick', function(e) {
nodes.forEach(function(d) {
d.y += (height/2 - d.y) * e.alpha;
});
})对于第二个问题,我相信,它不是中心,但在默认情况下,有一个很小的重力,它把节点拉向中心。
https://stackoverflow.com/questions/11909083
复制相似问题