替换为crossSum in crossfilter和dc

时间:2014-08-01 09:55:19

标签: javascript dc.js crossfilter

我有以下类型的数据集:

a:5 b:4 c:3 d:A
a:6 b:5 c:4 d:A
a:7 b:6 c:5 d:B
a:8 b:7 c:6 d:B
a:9 b:8 c:7 d:C

我想要' d'作为我的crossfilter的维度,图表中绘制的值是数据集中的(a / b)。为此,我在我的数据集中添加了一个额外字段,名为' e' =(a / b),然后通过以下方式将其作为i / p传递给crossfilter:

var facts = crossfilter(json); // json being the name of my dataset
var pfmValue = facts.dimension(function(d) {return d.d;});
var pfmValueGroupSum = pfmValue.group().reduceSum(function(d) {return +d.e;});

然后我使用pfmValue作为维度和pfmValueGroupSum沿着条形图的Y轴绘制了一个直流图。但是现在我意识到这不是我想绘制的。现在,我有三个条形显示等于以下的值表达式:

bar A: (5/4)+(6/5)
bar B: (7/6)+(8/7)
bar C: (9/8)

但我想要的是:

bar A: (5+6)/(4+5)
bar B: (7+8)/(6+7)
bar C: (9/8)

我该怎么做?任何建议都将受到赞赏。

1 个答案:

答案 0 :(得分:1)

您可能需要创建一个自定义分组来跟踪" a"的总和。和" b"的总和在单独的属性中。然后你就可以算出" /"总和b"在构建可视化文件时。