【发布时间】:2021-05-31 14:20:28
【问题描述】:
我有以下模式的 CSV 数据:
Quarter,productCategory,unitsSold
2018-01-01,A,21766
2018-01-01,B,10076
2018-01-01,C,4060
2018-04-01,A,27014
2018-04-01,B,12219
2018-04-01,C,4740
2018-07-01,A,29503
2018-07-01,B,13020
2018-07-01,C,5549
2018-10-01,A,3796
2018-10-01,B,15110
2018-10-01,C,6137
2019-01-01,A,25008
2019-01-01,B,11655
2019-01-01,C,4630
2019-04-01,A,31633
2019-04-01,B,14837
2019-04-01,C,5863
2019-07-01,A,33813
2019-07-01,B,15442
2019-07-01,C,6293
2019-10-01,A,35732
2019-10-01,B,19482
2019-10-01,C,6841
如您所见,每天销售 3 个产品类别。我可以制作一个直方图,并计算每箱 unitSold 涉及多少个 Quarters。这里的问题是每个季度都是单独计算的。我想要的是一个直方图,其中 unitsSold 的 bin 已经与 Quarter 上的 reduceSum 分组。
这将导致如下结果:
Quarter, unitsSold
2018-01-01,35902
2018-04-01,43973
2018-07-01,48072
2018-10-01,25043
2019-01-01,41293
2019-04-01,52333
2019-07-01,55548
2019-10-01,62055
根据unitsSold 的分类,有多少Quarters 会落入其中。例如,50.000 - 70.000 的 bin 将计算 3 个季度(2019-04-01、2019-07-01 和 2019-10-01)
通常我会这样做:
const histogramChart = new dc.BarChart('#histogram');
const histogramDim = ndx.dimension(d => Math.round(d.unitsSold / binSize) * binSize);
const histogramGroup = histogramDim.group().reduceCount();
但在理想情况下,直方图是在已经“reducedSummed”的东西上创建的。以这样的条形图直方图结束(数据与本示例不匹配):
如何使用 dc.js/crossfilter.js 来做到这一点?
【问题讨论】:
-
我用另一个例子试过了,但我就是做错了。
标签: dc.js crossfilter