gpt4 book ai didi

javascript - 对 CrossFilter 过滤感到困惑

转载 作者:行者123 更新时间:2023-11-29 18:04:51 24 4
gpt4 key购买 nike

我一直在努力理解 crossfilter 过滤,我终于能够在我的代码中正确使用它,但我似乎无法理解为什么 CrossFilter 会这样做。

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

正如 Jeffrey Biles 在其中所说的那样,“结果证明 crossfilter 不会将过滤器应用于您放置过滤器的维度。它会将其应用于其他所有内容。”

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

但后来我发现了这个Custom Text filter for DC.js dataTable :

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

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

  1. 为什么 CrossFilter 可以将过滤器应用于除您调用它的维度之外的所有维度?
  2. 如果是这样,为什么 rbristow 的代码可以工作?

提前致谢!

最佳答案

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

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

您引用的数据表示例的工作原因如下:dc.js 通常使用传递给它的组来使用 group.topgroup.all 构建其图表获取数据的方法,它忽略了该组维度上的过滤器。传递给图表的维度通常仅用于应用来自该图表的过滤器。它通常是(尽管不一定是)同一图表中定义组的维度。 dc.js 数据表不同。它使用维度来获取所需的数据。因此,如上所述,dataTable 将向您显示符合 Crossfilter 上所有过滤器的数据,包括在 dataTable 中使用的维度上放置的任何过滤器。

关于javascript - 对 CrossFilter 过滤感到困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32145059/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com