use*_*082 3 javascript d3.js crossfilter dc.js
我有以下数据.
col1 col2 value a 01/01/14 10 a 01/01/14 35 a 01/01/14 68 a 01/01/14 21 a 01/01/14 24 b 01/01/14 26 b 01/01/14 35 b 01/01/14 39 b 01/01/14 87 c 01/01/14 25 c 01/01/14 63 c 01/01/14 11 c 01/01/14 25 c 01/01/14 35
如果我想取col1的总和.我可以通过使用来做到这一点col1Dim.group().reduceSum(function(d) { return d.value }).如果我需要计数,我可以用计数替换总和.
但是我在这里寻找平均值.那就是那个.我需要得到col1和col1的总和.
任何想法我如何划分和获得平均值?
请帮忙.坚持了将近3天.
dav*_*inn 15
您需要使用group.reduce(add,remove,initial)方法,如:
var col1DimTotal = col1Dim.group().reduce(reduceAdd, reduceRemove, reduceInitial);
function reduceAdd(p, v) {
++p.count;
p.total += v.value;
return p;
}
function reduceRemove(p, v) {
--p.count;
p.total -= v.value;
return p;
}
function reduceInitial() {
return {count: 0, total: 0};
}
Run Code Online (Sandbox Code Playgroud)
因为您使用的是dc.js,所以您需要使用chart.valueAccessor方法来使用图表中的平均值,例如:
chart.valueAccessor(function(p) { return p.value.count > 0 ? p.value.total / p.value.count : 0; });
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4371 次 |
| 最近记录: |