2017-09-01 61 views
0

我正在嘗試使用d3構建氣泡圖。在D3版本中一切都很好。但改成d3 v4後,氣泡消失了。看起來下面的代碼在v4中不起作用。 「價值」功能被改爲其他一些東西。將d3v3轉換爲d3v4後氣泡消失

pack = d3.pack() 
    .padding(2) 
    .size([this.diameter - this.margin, this.diameter - this.margin]) 
    .value(function (d) { return d.size; }); 

以下是D3 V3中的示例。如何將其更改爲d3 v4? https://embed.plnkr.co/qM3qrk3swvalQFBh1Db1/

謝謝!

+0

邁克有很棒的v4例子[這裏](https://bl.ocks.org/mbostock/7607535) – Nick

+1

謝謝!我解決了我的問題。只是改變了幾行。主要的不同是'root = d3.hierarchy(root) .sum(function(d){return d.size;}) .sort(function(a,b){return b.value - a.value;} );' –

+0

太棒了!考慮發佈您的答案並在下面接受,以便其他人可以看到。 – Nick

回答

0

「.value」不能在d3v4中使用。它需要更改爲:

let pack = d3.pack() 
    .size([diameter - margin, diameter - margin]) 
    .padding(2); 

爲了得到節點,你需要使用pack(root).descendants()。對於根,從d3.html獲取它。希望這會幫助某人。

let root = d3.hierarchy(root) 
     .sum(function(d) { return d.size; }) 
     .sort(function(a, b) { return b.value - a.value; }); 

    let nodes = pack(root).descendants();