如何根据数据在Highchart中绘制动态系列

时间:2017-07-17 03:12:07

标签: highcharts highstock

我想根据数据添加系列数。有时对于同一请求的示例,高图表可能包括2个系列或4个系列。

前:

Request 1
[[ser1,ser2,datetime],[ser1,ser2,datetime]]

Request 2
[[ser1,ser2, ser3,ser4, datetime],[ser1,ser2, ser3,ser4, datetime]]

其中" datetime"是x轴值

您能否建议我如何解决这个问题。

2 个答案:

答案 0 :(得分:1)

如果您的xAxis是日期时间,我建议您更改响应结构。 最好包括时间戳和数据,如下所示

seriesData = [[timestamp1, val1],[timestamp2, val],[timestamp3, val3],......]

现在您的请求看起来像这样

Request 1
[seriesData1, seriesData2, seriesData3,seriesData4]

Request 2
[seriesData1, seriesData2, seriesData3, seriesData4, seriesData5, seriesData6, seriesData7,seriesData8]

我认为你为datetime设置了一个单独的数组,因为你有2个不同时间戳的数据序列数量不同。

在上述方法中。您可以使用请求的传入响应直接提供系列部分。

希望这会对你有所帮助。

答案 1 :(得分:1)

您可以在预处理中将数据转换为正确的格式。

var json = [
    [2, 4, 1500284119000],
    [10, 20, 1500284141000]
  ],
  series = [],
  each = Highcharts.each,
  len;

each(json, function(items, i) {

  len = items.length;

  each(items, function(item, j) {

    if (j < len - 1) {
      if (i === 0) { // create series structure
        series.push({
          data: []
        });
      }

      series[j].data.push({
        x: items[len - 1],
        y: item
      })
    }
  });

});

示例: