Javascript D3.js中的双嵌套数据

Javascript D3.js中的双嵌套数据,javascript,d3.js,Javascript,D3.js,我试着做两个部分:一个是月,一个是年 每个部分内:每个部分内有2个饼图,因此 月 ->mtd馅饼 ->利姆特派 年 ->利伊特派 ->年初至今馅饼 我的数据结构如下: {range:"month||year",period:"mtd||ytd||lymtd||lyytd",category_id:25,amount:100} 我已将数据嵌套到 nested = d3.nest() .key(function(d){return d.range;}) .key(function(d){r

我试着做两个部分:一个是月,一个是年 每个部分内:每个部分内有2个饼图,因此

月 ->mtd馅饼 ->利姆特派 年 ->利伊特派 ->年初至今馅饼 我的数据结构如下:

{range:"month||year",period:"mtd||ytd||lymtd||lyytd",category_id:25,amount:100}
我已将数据嵌套到

nested = d3.nest()
  .key(function(d){return d.range;})
  .key(function(d){return d.period;})
  .entries(collection.toD3Json());
我的初始数据附件是:

var blocks = chart.selectAll("svg")
      .data(nested, function(d){ return d.key;})
关键是我希望在整个过程中保持对象的一致性,因此如果我附加一个新的嵌套数据结构,它将使用现有的键,或者在键不存在的情况下添加新元素

我在通过第一个数据联接时遇到问题,因为我想将nested.values与另一个d.key一起使用,但不确定如何使用。到目前为止,我最好的猜测是:

var circles = blocks.selectAll("g.block")
         .data(function(d){ return d.key;})
    .enter().append("svg:g")
         .attr("class","block");

你能提供一个JSFIDLE来说明吗?对不起-我去年解决了这个问题,手头上没有答案…我会尽快提供答案。你能提供一个JSFIDLE来说明吗?对不起-我去年解决了这个问题,手头上没有答案…我会尽快尝试提供答案