首页 文章

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

提问于
浏览
1

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

我的数据如下:

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 回答

  • 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或网络的某个地方是这种循环形式,但我找不到它 . )

相关问题