2014-10-09 69 views
0

我是dc.js的新手......并且诚实地对数字显示小工具有什么了解。我试着看看这个例子,并且基本上将它的部分逐字地复制到我的代码中,希望它能够工作(但是知道它不会)。我的目标是显示线图(sat分数)的平均值(这将根据交叉过滤器进行更改)。有什么建议?...dc.js数字显示小工具

var ndx = crossfilter(csv); 
var all = ndx.groupAll(); 
var bysat = ndx.dimension(function(d) { return d.compositesat; }); 

var boxND = dc.numberDisplay("#number-box"); 

var satavgnum = bysat.group().reduce(
      function (p, v) { 
       ++p.n; 
       p.tot += v.compositesat; 
       return p; 
      }, 
      function (p, v) { 
       --p.n; 
       p.tot -= v.compositesat; 
       return p; 
      }, 
      function() { return {n:0,tot:0}; } 
    ); 

var average = function(d) { 
    return d.n ? d.tot/d.n: 0; }; 

boxND 
    .formatNumber(d3.format(".3s")) 
    .valueAccessor(average) 
    .group(satavgnum); 

回答

2

“它不起作用。”你得到什么结果? 0?喃?空白?

如果您看到一个结果,但它是错误的,现在是时候拉出调试器,看看数据有什么问题。有几个窍门在这里:

https://github.com/dc-js/dc.js/wiki/FAQ#tell-whether-my-groups-are-functioning-correctly--whether-my-input-data-is-good

如果你没有得到任何结果,尽量把一些初始文本到#number-box格,如果它被覆盖看到。

事实上,它看起来像你已经非常忠实地复制和粘贴examples/number.html,并且很难说没有小提琴或者至少是一个数据例子会出现什么问题。