DC.js 根据维度计算平均值
DC.js computing mean according to dimension
我有一个看起来像这样的数据集:
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 可以在另一个图形中过滤) .
有办法吗?
提前感谢您的回答!
因此,不要使用交叉过滤器来 "just" 跟踪总和,而是使用自定义 reduce 来跟踪总和和项目数量,然后将 valueAccessor 添加到 return x.value.sum/x.value.qty
我建议你使用 reductio 来处理自定义 reduce,检查示例,你有一个平均数。
我有一个看起来像这样的数据集:
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 可以在另一个图形中过滤) .
有办法吗?
提前感谢您的回答!
因此,不要使用交叉过滤器来 "just" 跟踪总和,而是使用自定义 reduce 来跟踪总和和项目数量,然后将 valueAccessor 添加到 return x.value.sum/x.value.qty
我建议你使用 reductio 来处理自定义 reduce,检查示例,你有一个平均数。