2016-12-14 44 views
1

我試圖使用dc.js庫創建數據可視化。如何在dc.js上創建一個具有多個維度的組

但我的數據有多個值字段。

所以在這裏我的數據的一部分:

[{"_1000_1249":0,"_1250_1499":2},{"_1000_1249":1,"_1250_1499":2},{"_1000_1249":2,"_1250_1499":3}] 

我想通過這樣的數據鍵(計算數據的總和)創建組:

  • 「_1000_1249」:, (的 「_1000_1249」 之和)
  • 「_1250_1499」:,
(的 「_1250_1499」 之和)

那麼如何創建像這樣的dc.js行圖?

感謝

+0

我同意@阮經天的回答是:如果你能重塑,做到這一點。如果你真的不能,有http://stackoverflow.com/questions/24737277/dc-js-how-to-create-a-row-chart-from-multiple-columns和各種後續。 – Gordon

回答

1

我想你應該重塑你的數據,使其更符合該Crossfilter範例。下面應該得到你想要的東西:

var data = [{"_1000_1249":0,"_1250_1499":2},{"_1000_1249":1,"_1250_1499":2},{"_1000_1249":2,"_1250_1499":3}] 

var updatedData = [] 
for(var i=0; i < data.length; i++) { 
    for(key in data[i]) { 
    updatedData.push({ 
     key: key, 
     value: data[i][key] 
    }) 
    } 
} 

var cf = crossfilter(updatedData) 
var dimension = cf.dimension(function(d) { return d.key; }) 
var group = dimension.group().reduceSum(function(d) { return d.value; }) 

console.log(group.all()) 

如果你想嘗試,這是這裏的jsfiddle:https://jsfiddle.net/esjewett/1d853fwj/3/

+0

好的,但我的數據集中有不同類型的數據。如果只有這個數字沒有問題,但是有不同類型的數據。這些數據不會與其他人一樣。因此,它可能會更新問題 – kodcu

+0

嘗試用更新的數據來回答此問題。如果你只有其他屬性,它會正常工作。 –

相關問題