2014-02-19 70 views
1

在時間序列海軍報圖表現在我使用海軍報庫。繪圖0小時之間和24

我繪製數據的功能,數據對象的樣子:

{ "data" : [[temperature1, temp2, temp3,..]] } 

,我想只是放置0小時24小時之間的這種陣列,但我的代碼不能正常工作,並它只是凍結我的頁面調用這個func(也許是複雜的客戶吸引約8000點)後

格式應該是TIMEFORMAT:"%h:%m"

function plotdata(data) { 
var d1 = []; 
var increment = 3600/data['data'][0].length; 
for (var i = -2211663600; i < data['data'][0].length; i-=increment) { 
    d1.push([i, data['data'][0][i]]); 
} 

var options = { 
    xaxes: [{ 
     mode: "time", 
     timeformat: "%h:%m", 
     axisLabel: 'time', 
     min: (new Date(0, 0, 0, 00, 00, 00, 00)).getTime(), 
     max: (new Date(0, 0, 0, 24, 00, 00, 00)).getTime(), 

    }], 
    yaxes: [{ 
     axisLabel: 'y-axis', 
    }] 
}; 

$.plot("#plot1d", [ d1 ], options); 

感謝提前:)

+3

拉絲8000點需要一段時間......也許只能說明取決於顯示器的尺寸五分之一或十分之一百分點。 – Raidri

回答

2

你的環開始於一個負數,遞減,並且當它超過一個陣列,其是非負的長度僅結束。換句話說,循環永遠不會結束;它甚至沒有達到情節要求。

例如,如果你在陣列中有100個溫度,循環將有效地:

for (var i = -2211663600; i < 100; i-=36) { 

一旦你解決這個問題,繪製8000點,Raidri指出,仍然會比較慢;根據機器的不同,從幾百毫秒到幾秒不等。你應該下采樣提前,如果你打算做曲線上的一種實時交互(平移,縮放等)。