使用d3如何传递多行数据

时间:2015-05-07 14:00:45

标签: javascript d3.js

我有一些看起来像这样的代码:

var row = 4;
var col = 4;
var stack = d3.layout.stack();
var layers = stack( d3.range(row).map(function() {
    return CmcLayer(col); 
}));

function CmcLayer(col) {
    var a = [1, 2, 3, 4];
    return a.map(function(d, i) { return {x: i, y: d}; });
}

最理想的是,我想传递看起来像这样的数据,或类似于:

var a = [[1, 2, 3, 4], 
         [4, 3, 2, 1],
         [1, 2, 3, 4],
         [4, 3, 2, 1]];

我需要更改什么才能接受多行?

1 个答案:

答案 0 :(得分:0)

想出来。以下是后人的答案。

    var stack = d3.layout.stack();
    var layers = stack( CmcLayerData() );

    function CmcLayerData() {
        var data = [[1, 2, 3, 4], // bottom
                    [1, 2, 3, 4],
                    [1, 2, 3, 4],
                    [4, 2, 3, 4]]; // top

        data = data.map(function(d) { 
            return d.map(function(i, j) { 
                return {x:j, y:i, y0:0};
            });
        });

        return data;
    }