使用面板数据集在dc js中创建堆积图表

时间:2015-09-17 12:46:43

标签: javascript d3.js dc.js

我在创建堆积条形图时遇到问题,我无法弄清楚如何将尺寸正确应用于面板数据集

我的数据如下:

Date     name   value
12/1/15 name1  5
12/1/15 name2  6
12/1/15 name3  2

13/1/15 name1  2
13/1/15 name2  7
13/1/15 name3  8

14/1/15 name1  2
14/1/15 name2  5
14/1/15 name3  10

以JSON格式存储

我想创建堆积图表,用于绘制与不同名称相关的值。

据我了解dc-js,我需要提供一个包含日期维度的图表,然后通过不同的名称提供另一个维度,然后对这些值进行分组,但我不确定如何继续。

有谁知道我怎么能这样做?

1 个答案:

答案 0 :(得分:1)

以下是如何从the FAQ生成群组:

var group = dimension.group().reduce(
    function(p, v) { // add
        p[v.type] = (p[v.type] || 0) + v.value;
        return p;
    },
    function(p, v) { // remove
        p[v.type] -= v.value;
        return p;
    },
    function() { // initial
        return {};
    });

(在您的情况下,v.name代替v.type。)

基本上,您创建的组会缩减为包含每个堆栈值的对象。

然后使用.group().stack()的名称和访问者参数。很遗憾,你必须拼出来,因为第一个必须是.group而其余的.stack

如此:

chart.group(group, 'name1', function(d) { return d.name1; })
   .stack(group, 'name2', function(d) { return d.name2; })
   .stack(group, 'name3', function(d) { return d.name3; })
   ...

(在SO或网络上某处是循环形式,但我找不到ATM。)