2012-10-30 74 views
3

我有網絡,每個節點都有一個通過聚類方法獲得的屬性組。我想知道使用力佈局渲染網絡的最佳方法,其中屬於同一組的節點聚集在太空中?d3js如何通過羣集非強制佈局來收集節點?

一種方法,但我不知道如何實現它,將會增加同一組節點之間的吸引力(與應用到所有節點的排斥力相比)。

回答

4

一種可能性是在nb_group方向devide空間和分配給他們的小組的方向推節點:

var angle = 2*Math.PI/nb_group; 
    var intensity = 500; 

    var updateNode = function() { 
    this.attr("transform", function(d) { 
     var xm = d.x + intensity*Math.cos(angle*d.group); 
     var ym = d.y + intensity*Math.sin(angle*d.group); 
     return "translate(" + xm + "," + ym + ")"; 
    }); 
    } 

intensity是休,因爲我負責的1000 enter image description here