我使用d3.nest.rollup计算数据中的叶子数。数据来自csv,并由d3转换为json。 csv看起来像这样:
Color,ID,Animal
Green,1,Dog
Red,2,Cat
Red,3,Cat
Red,3,Dog
请注意,ID#3有两种不同的动物,但我想在此数据中计算不同的ID,因此每种颜色都应返回count = 1。
简单汇总函数会返回所有叶子的计数,即1,1,2,而我需要按颜色分组并计算该组中的不同ID ...
答案 0 :(得分:0)
你需要做一个两级的下一个(第一个颜色,然后是id),然后在第二个组上滚动,如下所示:
var nested_data = d3.nest()
.key(function(d) { return d.Color; })
.key(function(d) { return d.id; })
.rollup(function(ids) {
return ids.length;
})
.entries(data);
console.log(nested_data);
会给你:
这里有关于嵌套和汇总的精彩教程:http://bl.ocks.org/phoebebright/raw/3176159/