我正在尝试从 Xively 数据创建一个 Highstock 图表。
我能够从 Xively 数据流的历史查询中创建常规折线图,并且通过一些基本的数据格式调整,我可以将其传递给Highcharts.Chart()
.
我尝试制作Highstock 图表但没有任何成功。
我是使用 Highcharts 的新手,我不熟悉 JavaScript。
我正在尝试从 Xively 数据创建一个 Highstock 图表。
我能够从 Xively 数据流的历史查询中创建常规折线图,并且通过一些基本的数据格式调整,我可以将其传递给Highcharts.Chart()
.
我尝试制作Highstock 图表但没有任何成功。
我是使用 Highcharts 的新手,我不熟悉 JavaScript。
在基本的 Highcharts 示例中,您有一些代码可以适应数据格式。value
该代码使用/键获取数据点对象数组at
并创建一个二维数组。
它映射了这个:
[
{ value: "59", at: "2013-05-01T00:59:45.645022Z" },
{ value: "59", at: "2013-05-01T01:59:48.550144Z" },
{ value: "59", at: "2013-05-01T02:59:51.313604Z" }
]
对此:
[
["2013-05-01T00:59:45.645022Z", 59],
["2013-05-01T01:59:48.550144Z", 59],
["2013-05-01T02:59:51.313604Z", 59]
]
我可以使用一个简单的 for 循环来做到这一点,我还使用Date.parse()
以及parseFloat()
确保 Highcharts 正确理解我的数据:
var xively_datapoints = data.datapoints;
var chartdata = [];
for (i = 0; i < xively_datapoints.length; i++) {
chartdata.push([
Date.parse(xively_datapoints[i].at),
parseFloat(xively_datapoints[i].value)
]);
}
然后我将chartdata
数组传递给 Highcharts,如下所示:
$('#container').highcharts('StockChart', {
rangeSelector : {
selected : 1
},
series : [{
name : 'Highstock+Xively',
data : chartdata, // reformatted data
tooltip: {
valueDecimals: 2
}
}]
});