dc.js boxplot b.map(...)。sort不是一个函数
我正在尝试生成箱形图。 创建维度和组之后,我按照https://github.com/dc-js/dc.js/blob/master/web/examples/box-plot.html中给出的示例进行了操作
我正在使用reductio使裁减更容易:
var ndx = crossfilter(ds);
var skuDim = ndx.dimension(function(d){ return d.sku; });
var skuGroup = skuDim.group();
var reducer = reductio();
reducer
.value('_nc')
.sum(function(d){
return d.nc;
});
reducer
.value('_ta')
.sum(function(d){
return d.ta;
});
reducer(skuGroup);
我还为我的组使用了valueAccessor:
.valueAccessor(function(p){
return p.value._nc.sum ? Math.round(p.value._ta.sum / p.value._nc.sum * 100) / 100 : 0;
})
我收到这个错误:
TypeError: b.map(...).sort is not a function.
我已经添加了一个小提琴来复制这个问题。 https://jsfiddle.net/momhzyxp/7/
干杯
您可以使用reductio.dataList来生成落入每个bin的原始行数组,而不是使用reductio来将这些值聚合为和。
var reducer = reductio();
reducer
.value('_rows')
.dataList(true);
reducer(skuGroup);
然后,假设你想通过每个nc
来分割每个ta
(不知道你在这里试图做什么), valueAccessor
看起来像:
.valueAccessor(function(p){
var values = p.value._rows.dataList.map(function(v, i) {
return v.nc ? Math.round(v.ta / v.nc * 100) / 100 : 0;
});
return values;
})
(或者你可以对每个v.ta
和v.nc
做任何你喜欢的v.nc
)。
你小提琴的叉子:https://jsfiddle.net/oawbzdgy/11/
链接地址: http://www.djcxy.com/p/32805.html上一篇: dc.js boxplot b.map(...).sort is not a function
下一篇: crossfilter how to simply get the sum total from the values in a group