1

我知道,在 d3.js v4 中,通过使用 d3.v4 hierarchy().sum(),父级的值可能大于其子级的总和

我也知道 hierarchy().sum() 函数将返回一个值,该值是节点及其子节点的总和。

但是,我只想绘制仅包含其值的相应矩形(而不是其值的总和加上其子项的总和)

可能吗?

例如,这是 JSON 文件:

{"name":"Top Level", "size": "50000" ,"children":[{"name":"Level 2: A","size":"10000","children":[{"name":"Son of A","size":"2000"},{"name":"Daughter of A","size":"3000"}]},{"name":"Level 2: B","size":"1000"}]}

所以对于顶级,我只有一个大小为 50000 的盒子。(不是 50000+10000+2000+3000+1000 = 66000)

4

1 回答 1

0

您可以手动覆盖层次对象的值和跳过sum函数

var rawData = {
  "name": "Top Level",
  "size": "50000",
  "children": [
    {
      "name": "Level 2: A",
      "size": "10000",
      "children": [
        {
          "name": "Son of A",
          "size": "2000"
        },
        {
          "name": "Daughter of A",
          "size": "3000"
        }
      ]
    },
    {
      "name": "Level 2: B",
      "size": "1000"
    }
  ]
}

var root = d3.hierarchy(rawData);  //apply hierarchy 


root.each(d=> d.value = +d.data.size); //override values
于 2017-05-02T09:50:23.850 回答