我正在尝试将crossfilter与人力车一起使用,但我遇到了这个问题:
Rickshaw希望其系列数据数组由具有x和y属性的对象组成,其中crossfilter输出使用键和值属性。
因此,crossfilter会输出类似的内容:
console.log(usersByProduct.all()[0]) // => Object {key: 1390291200, value: 249}
这显然是人力车拒绝了这样的错误:
Uncaught x and y properties of points should be numbers instead of undefined and undefined
我能想到让它发挥作用的唯一方法是:对底层交叉过滤器的任何更改,将交叉过滤器结果复制到一个新数组并使用新数据重置人力车,这看起来非常难看并且是不必要的副本。
有没有人有更好的方法?
答案 0 :(得分:0)
我不认为Rickshaw允许您像dc.js那样在图表上设置访问者,因此您必须以其期望的格式提供数据。我认为你必须如你所描述的那样在Rickshaw图上明确设置更新的数据。在任何情况下,你必须在你的Rickshaw图上调用对Crossfilter的任何更改的render()方法,不是吗?因此,您可以封装重置数据并将.render()调用到单个函数中,并在调整Crossfilter时调用它。但希望其他人会有更好的主意。