【问题标题】:How to create one group with multiple dimension on dc.js如何在 dc.js 上创建一个具有多个维度的组
【发布时间】:2016-12-14 08:29:25
【问题描述】:

我正在尝试使用 dc.js 库创建数据可视化。

但我的数据有多个值字段。

这里是我的部分数据:

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

我想用这样的数据键创建组(计算数据总和):

  • "_1000_1249":3,(“_1000_1249”之和)
  • “_1250_1499”:7,(“_1250_1499”之和)

那么我怎样才能创建这样的 dc.js 行图呢?

谢谢

【问题讨论】:

标签: javascript d3.js dc.js crossfilter


【解决方案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/

【讨论】:

  • 好的,但我的数据集中有不同类型的数据。如果只有这个数字没有问题,但有不同类型的数据。这些数据不会像这样对其他人产生影响。所以它可能会更新问题
  • 用你更新的数据试试这个答案。如果您只有其他属性,它会正常工作。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-07-06
  • 2017-05-04
相关资源
最近更新 更多