如何在dc.js上创建一个具有多个维度的组

问题描述:

我试图使用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

我想你应该重塑你的数据,使其更符合该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

尝试用更新的数据来回答此问题。如果你只有其他属性,它会正常工作。 –