根据计算的平均值

时间:2016-05-25 04:10:47

标签: dc.js crossfilter

我有一个很长的格式数据,如下所示。

year company value
2001 AAAAAAA 200
2002 AAAAAAA 300
2003 AAAAAAA 400
2001 BBBBBBB 150
2002 BBBBBBB 250
2000 CCCCCCC 500
2001 CCCCCCC 600
2002 CCCCCCC 550

是否可以按average计算income的{​​{1}},然后在DC.js上计算出company的直方图?

我首先要做的是按average制作维度并计算平均值,然后尝试将company设为average

我遇到的问题是,如果您尝试制作直方图,则必须key尺寸为reduceCount尺寸。但当然average对象上不存在average

这是我的jsfiddle脚本。
http://jsfiddle.net/adamist521/n1383zdk/3/
图表的最终图像也包含在脚本中。

可能与此相关,但无法弄清楚如何处理非整数平均值 DC.js histogram of crossfilter dimension counts

1 个答案:

答案 0 :(得分:1)

要计算运行平均值(Crossfilter是关于运行计算),您需要跟踪总和和计数。一旦你有了这些,计算平均值是微不足道的。实际上,您根本不应该计算Crossfilter中的平均值,而只是跟踪组件。您需要使用自定义组来跟踪同一组的计数和总和。

在Crossfilter文档中有一个这样的自定义组的示例:https://github.com/crossfilter/crossfilter/wiki/API-Reference#group_order

在dc.js图表​​中,您可以定义一个valueAccessor来计算显示时的平均值:

chart.
  ...
  .valueAccessor(function(d){ return d.value.total/d.value.count; })