2011年4月25日 星期一

Gnuplot的資料檔案格式

最近帶學生使用數位記錄器, 將實驗過程的資料輸出才純文字的數據檔後, 想使用gnuplot來繪圖, 卻發現畫出來的圖很奇怪。連最基本的2維的繪圖都無法正常產生圖, 出現錯誤訊息如下:
warning: No usable data in this plot to auto-scale axis range
All points x value undefined
或是
warning: Skipping data file with no valid points
all points undefined!
最後在無意間, 使用awk "{print $1,$2 }"來測試資料檔時, 從它的輸出結果中, 發現可能的問題:

原始數據檔案的編碼(encode)。因為數位記錄器預設的輸出格式為Unicode, 而在gnuplot以及awk無法正確輸入, 而造成不預期的結果。使用記事本(notepad)將原始數據檔, 以另存新檔時, 將編碼改為UTF-8, 以及在gnuplot中,要輸入 set encoding utf8 就可以將問題解決了。

In short:
Gnuplot recognizes data file encoded in UTF-8.  If a unicode encoded data file is used in gnuplot, unexpected results will happen.  In order to read UTF-8 data file correctly, "set encoding utf8" should be used in gnuplot.

沒有留言: