2013-05-19 49 views

回答

1

在基本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 
      } 
     }] 
    }); 
+0

這是你的代碼的工作版本:http://jsfiddle.net/T7D5U/2/ – errordeveloper

+0

這是真棒,謝謝! –

+0

@ScottGoldthwaite希望你從現在開始接受!幾點建議:一 )不共享)已經閱讀訪問您的數據 B中的API密鑰嘗試使用[Xively JavaScript庫(http://xively.github.io/xively-js/),這和你應該能夠使用'xively.datastream.subscribe'來製作實時圖表c)請將此標記爲已回答並請注意! – errordeveloper