我有一个很长的格式数据,如下所示。
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
答案 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; })