添加动态系列

时间:2017-09-19 17:15:49

标签: javascript jquery arrays highcharts

我使用的是Highcharts插件,我有两个数组,这是我的数组的一个例子:

  

阵列1:Serie1,Serie2,Serie3
  array2:20,30,40

我想要做的是在系列选项中使用此数组,将数组1作为系列名称,将数组2用作serie值,我可以手动执行此操作,但将来可能array1将具有更多值以及array2。< / p>

$('#Chart').highcharts({
     title: {
        text: 'Example'
     },
     xAxis: {
        labels:
        {
          enabled: false
        }
     },
     yAxis: {
         allowDecimals: true,
         min: 0,
         title: {
              text: 'Results'
         }
      },
      credits: {
         enabled: false
      },
      legend: {
         reversed: true
      },
      series: [{
          name: array1[x],
          data: array2[x].map(function (value) {
             return Number(value);
          })
      }]
});

我尝试使用for循环,但我认为不可能使用这个内部系列选项。此外,我尝试在highcharts代码之外使用for循环并使用字符串var连接上面的代码,但我不太确定这一点,这是我的代码:

var constructor = "";
for (var i = 0; i < array1.length; i++) {
      constructor += "name: '"+ array1[i] + "',";
      constructor += "data: " + array2[i] + ".map(function (value) {"
      constructor += "return Number(value);";
})

1 个答案:

答案 0 :(得分:1)

您可以创建没有系列的图形,然后在单独的函数中,您可以对数组进行迭代以正确地获取数据并以这种方式动态添加系列:

for (var i = 0; i < array1.length; i++) {
    chart.addSeries({
        name: array1[i],
        data: [array2[i]]
    }, false);
}
chart.redraw();

未经测试,但想法是