2012-08-10 34 views
5

由於這種早期question,我如下面d3.js使用力佈局產生的靜態固定佈局的圖表進一步定製佈局:首先,我注意到確定性初始化節點位置(例如,在這裏對角地完成,詳情參見script)修復了節點的位置,並且節點的方向似乎取決於這個初始化爲我們作爲力圖*的尺寸。我想知道我怎樣才能使圖中的節點水平對齊?換句話說,我想將圖形的方向逆時針旋轉大約45度。我試圖在中間水平初始化節點:格拉夫取向和定位節點

nodes.forEach(function(d, i) { d.x = w/size * i; d.y = h/2; }); 

但產生的輸出具有所有節點和邊緣的水平在他們被初始化哪裏。

其次,力圖是否自動居中在svg元素內?如果不是,我們怎麼能這樣做?如果是,我們如何在svg元素中指定力圖的中心?

(*注:奇怪的是,設置.size([w, h])其中w = h爲力曲線時,和確定性初始化節點沿對角線,所有節點和邊緣沿對角線輸出定位,爲什麼)

回答

2

嘗試添加一個自定義重力施加在每個滴答聲上,將節點拉向水平線。事情是這樣的:

force.on('tick', function(e) { 
    nodes.forEach(function(d) { 
    d.y += (height/2 - d.y) * e.alpha; 
    }); 
}) 

你的第二個問題,我相信,它不集中,但默認情況下,比重小力拉向中心節點。