2015-07-10 151 views
0

我正在使用crossfilter來獲取x軸上的數據和y軸上發生的次數。如何使用crossfilter JS在x軸上獲取數據和在y軸上發生的次數?

 var data = [{ 
    Owner: "Alyssa", 
    ID: "A" 
    }, { 
     Owner: "Alyssa", 
     ID: "A" 
    }, { 
     Owner: "Alyssa", 
     ID: "A" 
    }, { 
     Owner: "Alyssa", 
     ID: "A" 
    }, { 
     Owner: "Alyssa", 
     ID: "B" 
    }, { 
    Owner: "Bob", 
    ID: "A" 

}, { 
    Owner: "Bob", 
    ID: "D" 
}, { 
Owner: "Joe", 
ID: "A" 
}, { 
    Owner: "Joe", 
    ID: "A" 
}, { 
    Owner: "Joe", 
    ID: "D" 
}, { 
    Owner: "Joe", 
    ID: "D" 

}]; 
var dropdown_cross1 = crossfilter(data); 
var x_owner_filter=dropdown_cross1.dimension(function (d){ 

     for (var key in d) 
     { 
      if(d[key] == "D") 
      { 
       //console.log("selected_text="+selected_text); 
       //console.log('key=' + key + ' value=' + d[key]); 
       console.log(d[key]); 
       return d[key]; 
      } 

     } 

    }); 

    //x_owner_filter.filter("D"); 

    var y_owner_filter = x_owner_filter.group().reduceCount(); 


    var size=y_owner_filter.size(); 
    console.log("size="+size); 

    var size_ownertitle = y_owner_filter.top(size); 
    console.log(size_ownertitle); 

輸出

[Object { key="D", value=11}] 

輸出必須 [對象{鍵= 「d」,值= 3}]

我的新crossfillter,不知道在哪裏問題是什麼?

這裏是jsfiddle看到瀏覽器的控制檯輸出。

看看你希望計數的Ds更新JSfiddle

回答

0

,那將是一個ID維度,這簡直是:

var x_id_dim = dropdown_cross1.dimension(function (d){ 
    return d.ID; 
}); 

現在,Y值來自組與尺寸相關聯:

var y_id_group = x_id_dim.group().reduceCount(); 

您可能還需要所有者維度,分別創建它。

我懷疑這裏的混淆可能是「維度」的交叉過濾定義 - 它們實際上是指「您想要過濾和過濾的某個關鍵點」,而不是X和Y中的維度。通常,Y圖表維度將來自小組聚合。

+0

只要有看更新的jsfiddle鏈接,看到瀏覽器的console.In輸出,你會選擇所有者或ID,之後將創建相應的值另一個下拉列表中,如果在您選擇的任何標識或業主看到控制檯輸出,有我想要多少次發生所有者或ID。 – Mukesh

相關問題