Crossfilter中过滤尺寸的大小?

时间:2013-05-09 18:14:02

标签: d3.js crossfilter

我已多次阅读Crossfilter API文档,但看不到如何执行以下操作。

假设我已经设置

crossfilter(event);

和维度foo:

var foo = event.dimension(function(d) { return d.foo; }),
foos = foo.group(function(d) { return Math.floor(d) ; });

然后,在应用任何过滤器之前,event.size()将为我提供事件中的记录数量,foos.size()将为我提供foo维度中不同记录的数量

大!现在我通过滑动刷子应用一些过滤器。 event.groupAll().value()现在为我提供了所选事件中的当前记录数。太棒了。

现在如何获取foo维度中当前不同记录的数量?我尝试了许多不同的API原语组合,但似乎都没有。

有什么想法吗?

2 个答案:

答案 0 :(得分:7)

这应该可以解决问题

var n = foo.top(Number.POSITIVE_INFINITY).length;

答案 1 :(得分:0)

我没有足够的声誉评论Reno提出的解决方案。

  

这应该可以解决问题

     

var n = foo.top(Number.POSITIVE_INFINITY).length;

这个解决方案的问题是效率不高,因为top函数是对数据进行排序。

我遇到了同样的问题,你和我在过滤器中有一个计数器,知道有多少条目有维度。