目錄 | 簡介 | 輸出圖形輯入文件

用 gnuplot 檢視數值資料

2.1 gnuplot 的輸入資料格式
2.2 啟動 gnuplot
2.3 讀入資料檔繪圖
2.4 調整繪圖的格式
2.5藉 Gnuplot 之助進行工作

2.1 gnuplot 的輸入資料格式

gnuplot 所要讀入的資料檔案格式的要求很少,最簡單的要求是只要在檔案 中有行 (column) 的結構,可用以分辨不同欄位 (field) 就行。以下就是本 章的資料範例:假設某次實驗後收集得實驗資料,是一組可用以繪圖驗證的 數據,這些數據存在一個檔名為 ``data'' 的檔案中,包括有三個欄位 -- 依 序是 X 值、 Y 值、和誤差值。

資料檔 ``data''
-4.000000  25.071400 5.535340
-3.416670  26.609600 5.186600
-2.833330  32.507702 4.563950
-2.250000  42.865200 5.719100
-1.666670  68.307297 4.863300
-1.083330 113.533997 4.761980
-0.500000 161.464996 4.625440
 0.083333 181.237000 5.792480
 ...

2.2 啟動 gnuplot

啟動 gnuplot 相當簡單,例如在 UNIX 系統上,只要下 gnuplot 命 令,便會出現 gnuplot 的啟始畫面:

% gnuplot


 G N U P L O T
 unix version 3.5 
 patchlevel 3.50.1.17, 27 Aug 93
 last modified Fri Aug 27 05:21:33 GMT 1993 

 Copyright(C) 1986 - 1993   Colin Kelley, Thomas Williams

 Send comments and requests for help to ...
 Send bugs, suggestions and mods to ...

Terminal type set to 'x11'
gnuplot> _



因為是在一部有 X 繪圖能力的工作站上執行,所以在這個螢幕畫面 上顯示的終端機形態為 x11(X 終端機)。除此之外,在其他作業系 統上,例如 DOS, VAX/VMS 等,也與此情形類似。

若要結束 gnuplot 的工作,可用 quit 命令:

  gnuplot> quit

  % _

2.3 讀入資料檔繪圖

基本上, gnuplot 的繪圖命令只有二個 ----- plot splot ,分別 用來繪製二維和三維的圖形。我們可以立刻用 plot 命令描出 ``data'' 檔中的資料點(圖 2.1)。
          gnuplot> plot "data"


資料描點

由於上面命令中並未指定讀入資料欄位的方法, gnuplot 預設以第一
行 (column) 為橫軸座標值,第二行為縱軸座標值來描點。

科學用程式有時為了方便和易讀,而同時將多行資料存在同一個檔案中 ,並加上註解讓其他人能知道這些資料的意義,gnuplot 會自動跳過以
# 開頭的每一行註解,並且可以用類似 C 語言中 scanf() 函數所用的 格式字串 (format string) 來分辨一列中的不同欄位,和自行指定橫軸 、縱軸、誤差範圍等資料所用的欄位。詳細的命令格式可參考 ASPAC 文 件gnuplot 使用手冊的第 5 章第 3 節

2.4 調整繪圖的格式

plot 預設只作描點的工作,但描點可能不足以讓人看出資料的意義。用下 面的命令可以改變 plot 命令的繪圖參數,把圖上各點連接起來,觀察整 個曲線的行為(如下圖)。

  gnuplot> plot "data" with linespoints


資料折線圖

由此圖可以明顯看出,資料中有一個尖峰 (peak) ,但在它的右側還有一個 較不明顯的凸起。

針對不同意義的資料,gnuplot 提供了 9 種不同的圖樣 (styles) 供使用 者選擇,包括描點、連線、長條圖、階梯圖、誤差圖等。詳細的項目和使用 方法請參考 ASPAC 文件 gnuplot 使用手冊的第 5 章第 3, 4 節。

2.5藉 Gnuplot 之助進行工作

在看過前面的內容後可以知道 --- gnuplot 就是一個圖形預視工具,很容易 輸入資料和修飾圖形。您可以把工作中有關數據繪圖的部分交給它完成,再視 結果決定下一步工作的進行。例如在科學研究過程中,gnuplot 所能扮演的角 色不只是單純把數值資料繪成圖形,它還可以同時畫出其他資料或函數圖形與 之比對。我們延續前面的範例,假設範例中的資料曲線應該由二個高斯函數和 一個常數所組成,

所算出最接近實驗資料的模型函數是:

再用 gnuplot 同時把模型函數 輸入並畫圖觀察,為了解模型函數是否準確預測了實驗結果,可用誤差圖的方 式畫出實驗資料加以比對(如下圖)。

  gnuplot> G1(x)=135.64*exp(-0.5*x**2)
  gnuplot> G2(x)=57.5824*exp(-0.05556*(x-3)**2)
  gnuplot> G(x)=G1(x)+G2(x)+13.38
  gnuplot> plot "data" using 1:2:3 with errorbars, \
  "data" with lines, G(x), G1(x), G2(x)


資料、模型比對圖

可以發現模型曲線在圖形的中央部分雖然足夠準確,但在兩側部分卻出現明 顯的誤差,這表示模型很可能需要修正,才能正確預測實際的狀況。假設新 的模型是用一個一次項來修正舊的,

重新計算後,得到新的逼近函數:


並仿照前面的方式重新繪圖比對,得到新的模型和資料比對圖(如下圖)。


資料和新模型比對圖

於是發現新的模型可以完全吻合所有的實驗資料,等於替這個修正的模型提出 了有力的證據。在研究告一段落後,必須著手整理出研究報告或寫成論文, gnuplot 在前面所畫的圖除了幫助研究的進行,還能以高品質輸出,很方便地 輯入文件之中。下一章將專門討論這個主題。


目錄 | 簡介 | 輸出圖形輯入文件