В базовом примере Highcharts у вас есть немного кода, который адаптирует формат данных. Этот код принимает массив объектов datapoint с ключами 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]
]
Я могу сделать это с помощью простой для цикла и я также использовал 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
}
}]
});
Вот рабочая версия кода: http://jsfiddle.net/T7D5U/2/ – errordeveloper
Это потрясающе, спасибо !! –
@ScottGoldthwaite надеюсь, что вы сейчас заберете! Несколько предложений: a) не передавайте ключ API, который имеет доступ на чтение к вашим данным. b) попробуйте использовать [Xively JavaScript library] (http://xively.github.io/xively-js/) для этого и вы должен иметь возможность делать графики в реальном времени, используя 'xively.datastream.subscribe' c) отметить это как ответ и upvote, пожалуйста! – errordeveloper