当任何列被称为“值”时,是否可以创建树形图

时间:2016-04-05 13:12:15

标签: javascript d3.js treemap

我是d3的新手,我尝试创建一个树形图。 我注意到,当一个键被命名为“value”时,我的代码会起作用,如果我将我的键称为“size”,则不会这样做。

我的问题从第一行开始:

d3.json("dataZC.json", function(err, data)
{
    var treemap =d3.layout.treemap()
          .size([500,500])
          .nodes(data);
console.log(treemap);
}

我的数据看起来像那样

{
 "name": "flare",
 "children": [
  {"name": "analytics",
   "children": [
     {"name": "cluster",
     "children": [
      {"name": "AgglomerativeCluster", "size": 3938},
      {"name": "CommunityStructure", "size": 3812},
      {"name": "HierarchicalCluster", "size": 6714},
      {"name": "MergeEdge", "size": 743}
     ]},
    {
     "name": "graph",
     "children": [
      {"name": "BetweennessCentrality", "size": 3534},
      {"name": "LinkDistance", "size": 5731},
      {"name": "MaxFlowMinCut", "size": 7840},
      {"name": "ShortestPaths", "size": 5914},
      {"name": "SpanningTree", "size": 3416}
     ]}

     ,........ 

   ]}
]}

如果某人有解决方案使用任何键的树形图,我将非常感激。 感谢。

1 个答案:

答案 0 :(得分:0)

来自fine manual

  

<强> treemap.value ([值])
  如果指定了value,则将值访问器设置为指定的函数。如果未指定value,则返回当前值访问器,该访问器假定输入数据是具有数字value属性的对象:

function value(d) {
    return d.value;
}

使用

treemap = d3.layout.treemap()
    .value(function(d) {
        return d.size;
    })