2016-12-01 21 views
0

我有對象數組像在y軸這如何顯示在高庫存圖表

{ 
"data": [{ 
    "date": "11/25/2016 08:59:58", 
    "energy": 29940935080, 
    "power": 6815.7056798623, 
    "time": 217781943 
}, { 
    "date": "11/25/2016 09:29:59", 
    "energy": 29940981851, 
    "power": 6803.7187250996, 
    "time": 217783743 
}, { 
    "date": "11/25/2016 09:59:59", 
    "energy": 29941028913, 
    "power": 6841.5804195804, 
    "time": 217785544 
}, { 
    "date": "11/25/2016 10:29:59", 
    "energy": 29941075952, 
    "power": 6845.9247648903, 
    "time": 217787343 
}, { 
    "date": "11/25/2016 10:59:58", 
    "energy": 29941123228, 
    "power": 6877.2764478764, 
    "time": 217789143 
}] 

}

,我想顯示功率和日期的x axis.Once數據對象數組裝載我將Ÿ道具,讓Higchart可以讀取y軸值

   for (var i = data.data.length - 1; i >= 0; i--) { 
         var item=data.data[i]; 
         item.y=data.data[i].power; 
         data.data[i]=item; 
         var timestamp = new Date(data.data[i]['date']).getTime(); 
         values.push(timestamp,item.y); 

        } 


        chart.series[0].setData(values); 

但由於某些原因的數據在圖表顯示,請指導我這個

回答

2

我不確定你爲什麼要按照自己的方式做循環,但它有一些問題。

  1. 您正在反轉該數組。除非您的日期以相反的順序存儲,否則會導致問題。 Highcharts希望對X數據進行排序。
  2. 在行values.push(timestamp, item.y);您將2個項目推到值數組上,而不是推送2個值的數組或具有x和y值的對象。所以,highcharts認爲你有兩點,他們是連續的。

校正的循環:

var values = []; 
    for (var i = 0; i < data.length; i++) { 
    var item = {}; 
    item.y = data[i].power; 
    item.x = new Date(data[i]['date']).getTime(); 
    values.push(item); 
    } 

http://jsfiddle.net/gq385b16/1/

+0

完美的,如果我想使這個圖表刷新每一秒不chart.series [0] .setData(值)是好的或圖表。 series [0] .addPoints(values,true,true) – niran

+0

如果您只是添加新點,請使用addPoints。如果要替換數據,請使用setData –