Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/426.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript d3.js中的图形方向和节点定位_Javascript_Svg_Graph_D3.js_Force Layout - Fatal编程技术网

Javascript d3.js中的图形方向和节点定位

Javascript d3.js中的图形方向和节点定位,javascript,svg,graph,d3.js,force-layout,Javascript,Svg,Graph,D3.js,Force Layout,由于这一点,我在d3.js中使用force布局生成了一个静态固定布局图,如下所示: 我有两个具体问题需要进一步定制布局: 首先,我注意到,以确定方式初始化节点位置(例如,此处以对角线方式初始化,有关详细信息,请参见)会固定节点的位置,并且节点的方向似乎取决于此初始化以及力图的尺寸*。我想知道如何使上图中的节点A、D、E、F、I水平对齐?换句话说,我想逆时针旋转图形的方向大约45度。我已尝试在中间水平初始化节点: nodes.forEach(function(d, i) { d.x = w /

由于这一点,我在
d3.js
中使用force布局生成了一个静态固定布局图,如下所示:

我有两个具体问题需要进一步定制布局:

首先,我注意到,以确定方式初始化节点位置(例如,此处以对角线方式初始化,有关详细信息,请参见)会固定节点的位置,并且节点的方向似乎取决于此初始化以及力图的尺寸*。我想知道如何使上图中的节点
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])
其中
w=h
并沿对角线确定初始化节点时,所有节点和边都沿该对角线定位在输出中,为什么?)

尝试在每个刻度上添加一个自定义重力,将节点拉向水平线。大概是这样的:

force.on('tick', function(e) {
  nodes.forEach(function(d) {
    d.y += (height/2 - d.y) * e.alpha;
  });
})
对于你的第二个问题,我相信,它不是居中的,但是默认情况下,有一个小的重力将节点拉向中心