【问题标题】:DC.js computing mean according to dimensionDC.js 根据维度计算平均值
【发布时间】:2017-10-21 21:17:31
【问题描述】:

我有一个如下所示的数据集:

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 的平均值(可以在另一个图表中过滤 MONTH),而不是总和。

有办法吗?

提前感谢您的回答!

【问题讨论】:

标签: javascript d3.js dc.js crossfilter


【解决方案1】:

因此,不要使用交叉过滤器来“仅”跟踪总和,而是使用自定义 reduce 来跟踪总和和项目数,并添加 valueAccessor 以返回 x.value.sum/x.value.qty

我建议你使用reductio 来处理自定义reduce,检查示例,你有一个平均值。

【讨论】:

    猜你喜欢
    • 2019-10-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-27
    • 2020-07-09
    相关资源
    最近更新 更多