0
時間序列長無限期,但我希望能夠看看從開始時間t0到當前的時間階段t的情節。這意味着,該地塊的時間尺度是不斷萎縮。如何繪製時間序列圖而不記住整個系列?
當然,我可以把所有的時間序列數據,並在每個時間步我只是重新繪製新規模的情節。但是如果內存也有限呢?
假設編程被允許僅保留N個的存儲器陣列(他們可以存儲他們想要的陣列中的任何數目)。
儘管使用有限的內存,程序員如何繪製一個保留真實圖形近似形狀的圖形?
時間序列長無限期,但我希望能夠看看從開始時間t0到當前的時間階段t的情節。這意味着,該地塊的時間尺度是不斷萎縮。如何繪製時間序列圖而不記住整個系列?
當然,我可以把所有的時間序列數據,並在每個時間步我只是重新繪製新規模的情節。但是如果內存也有限呢?
假設編程被允許僅保留N個的存儲器陣列(他們可以存儲他們想要的陣列中的任何數目)。
儘管使用有限的內存,程序員如何繪製一個保留真實圖形近似形狀的圖形?
我發現一個簡單的解決方案,它可以繪製一個任意長的時間序列而不是忽略了開始部分。
訣竅是:當情節由1/2到達圖形,再分的整個圖形的右邊緣,並且把壓縮的曲線圖上的左半部分。然後從中點開始繪製。
通過反覆這樣做,圖表結束有一個「登錄」時間刻度,其中左側成倍壓縮,但用戶仍然可以看到的東西「形」在遙遠的過去。
該算法:
if (t > max_t) // t is time index
// compress array by 1/2
for (i = 0 to arraySize)
a[i] = (a[i * 2] + a[i * 2 + 1])/2;
// start from mid-point
t = arraySize/2;
[ re-plot the graph from 0 to 1/2 arraySize ]
else
[ plot the next datum normally ]
++t
實施例輸出(一個機器學習算法緩慢下降的錯誤):