d3.js - D3 交叉滤波器尺寸的离散滤波器

标签 d3.js crossfilter

有没有办法在具有一个或多个值的属性上创建维度?例如

{quantity: 2, total: 190, tip: 100, items: ["apple","sandwich"],
{quantity: 2, total: 190, tip: 100, items: ["ice-cream"]},
{quantity: 1, total: 300, tip: 200, items: ["apple", "coffee"]}

我的目标是创建一个交叉过滤器,它可以沿着具有序数值的维度过滤掉条目。有没有办法编写一个过滤器/维度,让我说“我想要所有包含‘苹果’项的条目”?

我能想到的唯一解决方法是为每个项目创建一个维度。像这样:
var paymentsByApple = payments.dimension(function(d) { return $.inArray("apple", d.items); });
var paymentsByCoffee = payments.dimension(function(d) { return $.inArray("coffee", d.items); });
// and one for every possible item

主要问题是我不想枚举和硬编码所有不同的对象。此外,我最终可能会拥有许多可能的不同项目。有没有更聪明的方法来做到这一点?

提前致谢!

最佳答案

在这里遇到同样的问题,并且看不到当前 lib 功能的简单解决方法,请参阅 this .

更改数据模型以适应 Pablo Navaro 提出的单个值维度的问题在于,您需要确保为其他维度计算的统计数据不会失真(重复计算、校正平均值……)

希望看到一个过滤器在多个值维度上工作,或者有更多的时间来挖掘代码库以提出一个......

关于d3.js - D3 交叉滤波器尺寸的离散滤波器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11571869/

相关文章:

javascript - 如何替换 d3.js 路径元素而不是绘制另一个元素?

javascript - D3v4 插入新节点

javascript - 无法理解为什么函数不断在 d3.js 上被调用

javascript - R 中的 NetworkD3 桑基图 : How to calculate value for each link?

javascript - 使用交叉过滤器转换数据集

javascript - 如何在 dc.js barChart 中绘制增长率线?

javascript - 使用 d3.js 显示数据

javascript - crossfilter 中的 reduceAdd、reduceSum、reduceRemove 函数是什么?它们应该如何使用?

dc.js - 为什么我的饼图在使用 dc.js 和 crossfilter.js 中的堆叠条形图进行过滤时显示不正确的组?

javascript - crossfilter 和 dc 中的 reduceSum 替代方案