這篇文章要探討的是XY Graph元件的時間軸資料處理:

這問題之前就有人問過,最近還有人問,這裡提出的是要如何處理跨日期的資料
XY Graph元件的XY軸資料顯示格式可以自定更改,其中一種是時間格式。
XY Graph元件的XY軸有個特性就是顯示資料不一定要按照順序編排,以時間為軸的資料在遇到有跨日期資料時常會出現顯示曲線交錯的錯誤狀況


以下舉例說明這個問題:

有一筆文字字串陣列資料如下:其中X軸是時間格式,Y軸是整數。可以看出X軸的時間範圍是從12點到第2天的12點

20100506-01  

 

XY Graph元件要顯示這筆資料當然必需把X軸改成相對應的時間格式


在XY Graph元件上按滑鼠右鍵,從跳出的選單中點選Properties,會跳出設定視窗

20100506-02  

 

切換到設定視窗的Format and Precision那一頁,在左上角的選單中選擇Time (X-Axis),可以看到X軸預設為Automatic formatting,顯示的是數值格式

20100506-03  

 

點選左下角Absolute time那一項把X軸變成時間顯示,變更後的時間軸是包含有年月日時分秒的格式,而來源資料並沒有年月日,所以要再把右下角的選單改選成Date unused那一項,使X軸只顯示時分秒

20100506-04  

 

再來依標準的方法來把文字字串資料轉換成XY Graph元件能接受的資料,看執行後會有什麼樣的結果


轉換重點是X軸的字串要拆成時分秒個別處理,轉換處理後再合併轉回時間格式,在轉成時間格式時要注意雖然XY Graph元件不顯示年月日,仍要把年月日預設個不為0的假值,否則轉出的是全為0的時間

20100506-05  

 

實際執行這段程式,可以看到因為跨日期時間沒有處理,第2天的資料跑到前面,整個資料曲線變成交錯的錯誤狀態

20100506-06  

 

這個問題要怎麼處理呢?

首先要單獨處理X軸資料,比對時的部份,利用迴圏去找出日期變換那個換日點的資料索引值

20100506-08  

 

再把換日點的資料索引值代入文字字串資料轉換的程式內,把時間轉換的程式那邊加入日的轉換,在資料轉換到換日點時,自動將日期加1。雖然這裡有日的資料,但在XY Graph元件上是不會顯示的

20100506-09  

 

完成的程式如下圖

20100506-07

 

實際執行這段程式,可以看到因為跨日期時間有處理,第2天的資料不會跑到前面,整個資料曲線是正確的顯示狀態

20100506-10     

,

未出師的小工程師 發表在 痞客邦 PIXNET 留言(0) 人氣()