首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CrossFilter滤波挡板

CrossFilter滤波挡板
EN

Stack Overflow用户
提问于 2015-08-21 16:18:38
回答 1查看 428关注 0票数 2

我一直在尝试理解交叉过滤器过滤,我终于能够在我的代码中正确地实现它,但我似乎不明白为什么crossfilter会这么做。

这就是我从这里得到的Crossfilter filters not filtering (dc.js)

正如Jeffrey在报告中所说的,“因此,交叉过滤器没有应用于您所安装的过滤器的维度,而是应用于其他所有方面。”

好吧,我不明白为什么要这样做,但好吧,过滤器适用于其他一切,明白了。

但后来我找到了这个Custom Text filter for DC.js dataTable

在这里,rbristow使用一个文本过滤框来过滤他的代码。但是过滤了他的companyDimension维度。这似乎也是被过滤的维度。

所以..。我有两个问题:

  1. 为什么CrossFilter会这样做,以便将过滤器应用到所有维度(除了您称之为过滤器的维度)?
  2. 如果是这样的话,为什么rbristow的代码能工作呢?

提前一吨谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-08-22 02:42:39

在交叉过滤器中,您可以查询维度(例如dimension.top(10))或组(例如group.all()group.top(10))。维度上的查询以维度的顺序返回原始数据记录,如果有的话,它们尊重交叉筛选器 the filter on that dimension上的所有过滤器。对组的查询返回组聚合,并尊重交叉筛选器 the filter on the dimension the group is defined on上的筛选器。

进行此设计的原因是,您将使用组查询的结果构建交互式图表类型(即用户将筛选的图表),因为我们希望绘制聚合值。当用户对图表进行过滤时,您确实不希望该图表发生更改。对于用户,数据应该保持不变。所有其他图表(基于在其他维度上定义的组)都应该改变。所以这就是为什么群体忽略了他们自己维度上的过滤器。

您引用的dataTable示例工作的原因如下: dc.js通常使用传递给它的组来构建其图表,使用group.topgroup.all方法获取数据,这会忽略该组维度上的筛选器。传递给图表的维度通常仅用于应用该图表中的筛选器。它通常是(虽然不一定是)同一图表中定义的组的维度。dc.js dataTable是不同的。它使用维度来获取所需的数据。正因为如此,如上所述,dataTable将显示尊重交叉过滤器上所有过滤器的数据,包括在dataTable中使用的维度上的任何过滤器。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32145059

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档