dc.js每个sku的平均值不正确

时间:2016-08-08 08:09:48

标签: javascript d3.js dc.js crossfilter

我正在使用Dimensional Charting javascript库dc.js制作堆叠平均条形图,它基于d3和crossfilter。我是dc.js库的新手。我已经显示了行图,饼图和数据表。最初加载数据时,所有堆积的条形图平均值都会正确显示。当我点击一个值的行图时,平均值堆叠条形图的值无法正常显示。我无法理解如何按照csv格式创建堆叠条形图。

 Sku      Stars partner review  Date
 KBU12     5       Amazon   Preferred over the r.   02/05/2016
 KBU12     5       Amazon   Gorgeous fixture    05/06/2016
 KBU12     2       Amazon   Awesome value!  02/02/2016
 KBU12      2      Homedepot    Kitchen Remodel 06/09/2016
 KPF1650    3   Homedepot   Wow 02/08/2016
 KPF1650    4   Homedepot   Sharp!  05/04/2015
 KPF1650    5   Homedepot   cool design 05/05/2015
 KPF1650    1   Amazon  Beautiful   09/08/2015
 KPF1650    2   Amazon  Very happy  09/11/2016
 GV-100     3   Amazon  Great quality   12/12/2015
 GV-100     5   Homedepot   Love it 01/03/2015
 GV-100     1   Homedepot   Sad I had to return it  12/10/2014
 GV-100     4   Homedepot   Beautiful But Stiff 12/11/2014
 GV-100     2   Homedepot   Kitchen Faucet  10/04/2014
 KBU24      3   Build       I like the look of faucet   04/05/2014
 KBU24      5   Build       Commercial style without    06/07/2016
 KBU24      4   Build       Very Cool   06/07/2014
 KBU24      1   Build       Excellent!  01/04/2014
 KBU24      3   Build       A beautiful Vessel Sink 07/06/2013
 KBU24      5   Amazon      Beautiful addition  05/04/2013

1 个答案:

答案 0 :(得分:1)

我花了一点时间弄清楚你在问什么,因为这里没有堆积的条形图。

但是我看到了合作伙伴的回顾"图表是空的,它使用平均值,所以我认为这是你要问的。

看起来星星的解析是不正确的:

 d.Stars = d.Stars.match(/\d+/);

String.match将返回一个字符串数组。因此,reduceAdd在尝试求和时不能直接使用它:

p.total += v.Stars;

尝试拉取第一个结果并将其转换为整数:

d.Stars = +d.Stars.match(/\d+/)[0];

工作(我认为)你小提琴的叉子:https://jsfiddle.net/gordonwoodhull/5xc9rh4f/1/