Javascript 对聚合结果进行交叉筛选
我使用Crossfilter(DC.JS和D3)来可视化大量数据。我喜欢图书馆的交互性,但我的数据很快变得太大了。我认为处理这个问题的最佳方法是,如果数据太大,就预先聚合数据。我很难找出交叉过滤器如何(以及是否)处理此类数据 举例来说,我所拥有的数据是Javascript 对聚合结果进行交叉筛选,javascript,visualization,dc.js,crossfilter,Javascript,Visualization,Dc.js,Crossfilter,我使用Crossfilter(DC.JS和D3)来可视化大量数据。我喜欢图书馆的交互性,但我的数据很快变得太大了。我认为处理这个问题的最佳方法是,如果数据太大,就预先聚合数据。我很难找出交叉过滤器如何(以及是否)处理此类数据 举例来说,我所拥有的数据是 [ {"date":"01-01-2016","food": "apple", "gender": "M", "country": "DE"}, {"date":"01-01-2016","food": "pear", "gend
[
{"date":"01-01-2016","food": "apple", "gender": "M", "country": "DE"},
{"date":"01-01-2016","food": "pear", "gender": "M", "country": "DE"},
{"date":"01-01-2016","food": "apple", "gender": "F", "country": "DE"},
{"date":"01-01-2016","food": "apple", "gender": "F", "country": "UK"},
{"date":"01-02-2016","food": "pear", "gender": "M", "country": "UK"},
{"date":"01-02-2016","food": "pear", "gender": "M", "country": "UK"},
{"date":"01-02-2016","food": "apple", "gender": "M", "country": "US"},
...
]
我如何通过可视化这个围绕日期字段的旋转来实现呢?所以知道在2001年1月1日,我有3个人买苹果,2个从DE(1男1女)买,1个从英国买
我想我可以通过为每个组合计算一种数据立方体,然后对其进行计数来实现这一点,如下所示:
[
{"date":"01-01-2016","food": "apple", "gender": "M", "country": "DE", "count": 100000},
{"date":"01-01-2016","food": "pear", "gender": "M", "country": "DE", "count": 72651},
{"date":"01-01-2016","food": "apple", "gender": "F", "country": "DE", "count": 12345},
{"date":"01-01-2016","food": "apple", "gender": "F", "country": "UK", "count": 9287164},
{"date":"01-02-2016","food": "pear", "gender": "M", "country": "UK", "count": 291732743},
{"date":"01-02-2016","food": "apple", "gender": "M", "country": "US", "count": 128176376}
...
]
但通过这种设置,我在数据量方面并没有赢得多少胜利,我也不完全确定交叉过滤器如何/是否能够以这种方式处理所表示的数据。这个问题相当广泛*,但接下来是 在Crossfilter中有几种处理此问题的方法。我将或多或少地按照复杂性的顺序列出它们:
{date:“01-01-2016”,“food:“apple”,“gender:“M”,“country:“DE”}
可能会变成{d:“01-01-2016”,“f:“a”,“g:“M”,“c:“DE”}
,这将为每个记录节省几个字节crossfilter.group.reduceSum(函数(d){return d.count;})
或类似方法来聚合计数总和。对于其他类型的聚合,它会变得更复杂,可能需要自定义的缩减器,但通常情况下是可能的。如果您遇到了特定的聚合问题,那么创建一个新的问题,并准确地列出问题*为了回答您的任何特定问题,我们需要进一步的信息,例如您试图加载的显示类型的记录的确切数量、您实际需要的维度、您需要创建的组的类型等。感谢您的解释。实际上,我的问题是一般性的,你的一般性回答帮助我解决了这个问题。我似乎一直在错误地使用reduceSum。谢谢