0
我想在強制有向圖中顯示一組節點。這些節點幾乎完全是父子關係(幾乎是一棵樹)。有幾個有很多孩子的節點,其他大多數是葉子節點。 這產生了幾個相互連接的節點「島」的結構。問題在於,這些「島」保持分散,尤其是當節點被拖拽時。d3.js強制圖形:將圖形分散得太多的鏈接
小提琴這裏:https://jsfiddle.net/50oz3xtr/ 我一直試圖在以下塊不同的設置:
var simulation = d3.forceSimulation()
.force("link", d3.forceLink().id(function(d) { return d.id; }))
.force("charge", d3.forceManyBody())
.force("center", d3.forceCenter(width/2, height/2));
但沒有運氣(強度,distanceMin ...)
我的問題是: - 如何我可以在鏈接上設置「最大長度」,所以圖表不會傳播太多嗎? - 有沒有辦法給鏈接設置一個「固定」的長度?
事實上,我有一個測試使用這種方法,但結果是相同的。它不同,是最初的佈局。但是,只要我點擊一個節點來拖拽它(即使根本不拖拽它),仿真也會繼續運行,並以類似的結構結束(即通過非常長的「字符串」相互連接的節點島),即使我修復了鏈接距離()。distance() – Trashie
我建議你嘗試這樣的事情:var simulation = d3.forceSimulation() .force(「link」,d3.forceLink().id(function(d){return d .id;})。distance(10)) .force(「collide」,d3.forceCollide(10)) .force(「center」,d3.forceCenter(width/2,height/2)); 更新小提琴:https://jsfiddle.net/50oz3xtr/1/ – bartelski