如何使用两个系列动态填充Highcharts柱形图

时间:2017-06-13 11:46:39

标签: javascript highcharts

我正在讨论两个问题: 第一个 - 我试图改变这个

series: [{
            type: 'column',
            color: '#a0a0a0',
            name: 'Previous',
            data: [A, B, C, D, E]

        }, {
            type: 'column',
            color: 'rgba(250,206,57,1)',
            name: 'Current',
            data: [AA, BB, CC, DD, EE]
        }
        ]

填充循环以便可以更改项目数,但此代码使每个项目成为不同的系列。

series: []

});

var newSeries = [];
for (var i = 2; i <= (N-1); i++) {
var newData = [];

var seria = {};
seria['name'] = 'Previous';
seria['data'] = [Pre[i]];
seria['color'] = '#2dbdda';

newSeries.push(seria);

var seria2 = {};
seria2['name'] = 'Current';
seria2['data'] = [Cur[i]];
seria2['color'] = '#214881';


newSeries.push(seria2);

}

有什么问题?

第二个 - 如何将动态填充添加到X轴数据标签?

感谢名单

1 个答案:

答案 0 :(得分:1)

根据更新的问题详情进行编辑

好的,那么,再看一下你发布的示例数据,你的数据已经在一个数组中,所以我看不到需要循环的东西。

您需要做的就是在图表选项中构建系列,并使用dataCur数组填充Pre

series: [{
  'name': 'Previous',
  'color': '#2dbdda',
  'data': Cur
}, {
  'name': 'Current',
  'color': '#214881',
  'data': Pre
}]

Cur[0] = 3
Cur[1] = 5
Cur[2] = 4

相同
Cur = [3,5,4]

没有循环的简化小提琴:

旧答案仍在,如果我误解了你的实际行动:

当前拥有的循环是在每次迭代时显式生成一个新系列。

如果您有一定数量的系列,则需要在循环数据之前单独创建系列对象。

如果你有一个动态的系列数,你需要一个嵌套循环来构建它们。

假设您只关注两个系列,并希望数据是动态的,您可以先构建系列,然后循环并填充数据,如下所示:

    //build the series placeholders, with empty data arrays
    var series = [{
            'name': 'Previous',
            'color': '#2dbdda',
            'data': []
        }, {
            'name': 'Current',
            'color': '#214881',
            'data': []
        }],
        Cur = [4, 5, 9, 8, 7], <-- example array; populate from your database
        Pre = [8, 6, 8, 1, 2];

    //loop through and push the data to your series data arrays
    for (var i = 0; i <= (Cur.length - 1); i++) {
        series[0].data.push([Pre[i]]);
        series[1].data.push([Cur[i]]);
    }

示例: