2014-10-09 31 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,並且很難說沒有小提琴或者至少是一個數據例子會出現什麼問題。