我有一个看起来像这样的数据集:
MONTH CAT VAL
may A 1.0
may B 3.2
may C 4.6
jun A 2.7
jun B 4.2
jun C 5.8
jul A 4.1
jul B 9.2
jul C 13.0
我已经能够在 DC.js 中创建一个图表,根据 CAT 变量显示 VAL 的总和,代码如下:
let chart = dc.barChart('#chart');
let ndx = crossfilter(data);
let catDim = ndx.dimension(function(d){return d.cat;});
let catGroup = catDim.group().reduceSum(function(d){return +d.val;});
chart
.dimension(catDim)
.group(catGroup)
.x(d3.scale.ordinal().domain(catDim))
.xUnits(dc.units.ordinal)
.elasticY(true)
我的问题是,我想在图表中显示每个 CAT 每月的 VAL 平均值,而不是总和(可以在另一个图表中过滤月份)。
有办法吗?
预先感谢您的回答!
最佳答案
因此,不要使用 crossfilter 来“仅仅”跟踪总和,而是使用自定义的reduce来跟踪总和和项目数量,并添加一个 valueAccessor 以返回 x.value.sum/x.value.qty
我建议您使用reductio要处理自定义减少,请检查示例,您有一个平均值。
关于javascript - DC.js根据维度计算平均值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46868178/