如何根据数据在Highchart中绘制动态系列
how to draw dynamic series in Highchart based on data
我想根据数据添加系列数。例如有时对于相同的请求,High-chart 可能包括 2 个系列或 4 个系列。
例如:
Request 1
[[ser1,ser2,datetime],[ser1,ser2,datetime]]
Request 2
[[ser1,ser2, ser3,ser4, datetime],[ser1,ser2, ser3,ser4, datetime]]
其中 "datetime" 是 x 轴值
你能建议我如何处理这个问题吗?
如果您的 xAxis 是日期时间,我建议您更改响应结构。
最好包括时间戳和数据如下
seriesData = [[timestamp1, val1],[timestamp2, val],[timestamp3, val3],......]
现在你的请求看起来像这样
Request 1
[seriesData1, seriesData2, seriesData3,seriesData4]
Request 2
[seriesData1, seriesData2, seriesData3, seriesData4, seriesData5, seriesData6, seriesData7,seriesData8]
我认为您为日期时间准备了一个单独的数组,因为您有不同数量的数据系列用于 2 个不同的时间戳。
在上面提到的方法中。您可以直接将请求的传入响应提供给系列部分。
希望对您有所帮助。
您可以在预处理中将数据转换为正确的格式。
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
})
}
});
});
示例:
我想根据数据添加系列数。例如有时对于相同的请求,High-chart 可能包括 2 个系列或 4 个系列。
例如:
Request 1
[[ser1,ser2,datetime],[ser1,ser2,datetime]]
Request 2
[[ser1,ser2, ser3,ser4, datetime],[ser1,ser2, ser3,ser4, datetime]]
其中 "datetime" 是 x 轴值
你能建议我如何处理这个问题吗?
如果您的 xAxis 是日期时间,我建议您更改响应结构。 最好包括时间戳和数据如下
seriesData = [[timestamp1, val1],[timestamp2, val],[timestamp3, val3],......]
现在你的请求看起来像这样
Request 1
[seriesData1, seriesData2, seriesData3,seriesData4]
Request 2
[seriesData1, seriesData2, seriesData3, seriesData4, seriesData5, seriesData6, seriesData7,seriesData8]
我认为您为日期时间准备了一个单独的数组,因为您有不同数量的数据系列用于 2 个不同的时间戳。
在上面提到的方法中。您可以直接将请求的传入响应提供给系列部分。
希望对您有所帮助。
您可以在预处理中将数据转换为正确的格式。
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
})
}
});
});
示例: