如何在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”:,
那么如何创建像这样的dc.js行图?
感谢
答
我想你应该重塑你的数据,使其更符合该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
尝试用更新的数据来回答此问题。如果你只有其他属性,它会正常工作。 –
我同意@阮经天的回答是:如果你能重塑,做到这一点。如果你真的不能,有http://stackoverflow.com/questions/24737277/dc-js-how-to-create-a-row-chart-from-multiple-columns和各种后续。 – Gordon