将d3v3转换为d3v4后,气泡消失

时间:2017-09-01 03:04:23

标签: javascript angular d3.js

我正在尝试使用d3构建气泡图。在d3 v3中一切都很好。但在改为d3 v4后,气泡消失了。看来下面的代码在v4中不起作用。功能"值"被改成了其他一些东西。

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/

谢谢!

1 个答案:

答案 0 :(得分:0)

“。value”不能在d3v4中使用。需要将其更改为:

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

要获取节点,您需要使用pack(root).descendants()。对于root,从d3.hierarchy获取它。希望这会对某人有所帮助。

  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();