2011年8月3日 星期三

[工具收集] Gnuplot 入門教學

轉載自 這裡 
前言 : 
關於這個軟體,網路上已經有許多介紹性的文章。本篇文章以物理系學生常用的功能「二維畫圖」與「數據fit」為主題,作為一個快速引入門的指引。相信只要學些基本基礎後,就可以依照自己的目的去自學了. 

下載軟體 : 
從軟體的官方網頁,可進入下載頁面(SourceForge.net) 

★ Windows 用戶 
點選』Architecture』項目為』i386″的檔案(類似』gp423win32.zip』的檔名)即可下載二進位程式。 
將程式解壓縮展開後,執行bin\wgnuplot.exe即可。 
ps. 事實上 gnuplot 只需要 wgnuplot.exe 一個檔案即可執行,可當作輕巧的可攜式綠色軟體。不過就沒有 help 功能了。 

★ 非 Windows 用戶 (以 Ubuntu Linux 為例) 
用 Synaptic 套件管理程式搜尋』gnuplot』即可由套件庫中安裝。亦可自己下載原始碼來編譯: 

1. 點選』Architecture』項目為』Platform-Independent』的檔案(類似』gnuplot-4.2.3.tar.gz』的檔名)即可下載程式原始碼。
2. 將程式解壓縮展開後,從終端機在該資料夾裡,執行編譯安裝指令:
./configure
make
sudo make install

從此之後,可從終端機輸入』gunplot』指令來使用此程式 

二維函數畫圖 : 
1. gnuplot 的畫圖指令非常簡單。例如畫 sin(x) 的圖,指令為: 
plot sin(x) 

2. 設定圖上的標題和座標軸名稱: 
set title 'Exp'
set xlabel 'x axis'
set ylabel 'y axis'
plot [x=0:2] [0:20] exp(x**2)
 
注意:gnuplot的次方是用「**」(而不是「^」) 

二維資料數據作圖 : 
1. 先在「gnuplot 程式目錄」下,建立一個數據資料檔,檔名命名為 『data.txt』,檔案內容為(中間以一個空格格開) : 
- 資料內容 :
  1. 0 0  
  2. 2 4  
  3. 4 18  
  4. 6 34  
  5. 8 63  
  6. 10 101  
  7. 12 140  
  8. 14 197  
  9. 16 260  

2. 依這個檔案裡的數據作圖的指令為:(數據的資料格式為x y) 
plot 'data.txt' 
注意: 假如把數據檔放在別的地方,譬如 C:\,引號裡就必須改成完整路徑’c:\data.txt’ 

二維資料數據 fitting (擬合、模擬) : 
1. 以一次函數 ax+b 來fit: 
fit a*x+b 'data.txt' via a,b //『Final set of parameters』裡的 a,b 即為 fit 的結果. 
plot 16.0833*x-37.8889, 'data.txt' //將 fitting 結果的函數圖形與原始數據,畫在同張圖上. 
2. 以二次函數 ax2+c 來fit: 
fit a*x**2+c 'data.txt' via a,c 
將 fitting 結果的函數圖形與原始數據,畫在同張圖上:(如下,也可以先指定 a,c 值) 
a= 1.00828
c=-0.639344
plot a*x**2+c, 'data.txt'
 

輸出成圖檔 : 
1. 設定輸出終端機類型(輸出成 png 圖檔),以及輸出圖檔檔名 : 
set terminal png
set output 'filename.png'
 

2. 執行想輸出成圖檔的繪圖指令,圖檔就會輸出到 gnuplot 程式目錄下. 
- 要關掉gnuplot後,圖檔才能正常讀取。(原因不明@@)
- 若要使繪圖指令輸出的圖,改回輸出到螢幕上顯示 :

set terminal windows //指令 set terminal 可簡寫為 set term 

參考與延伸資料 : 
* gnuplot簡介, yenlung 
* Gnuplot 導讀, 中央研究院計算中心ASPAC計劃。 
* GNUPLOT使用手冊, 中央研究院計算中心ASPAC計劃。 
* GNUPLOT 科學繪圖工具網頁介面, 台灣師大物理系 物理教學示範實驗教室 
* 地圖/統計圖/3d 函數圖/實驗報告圖 -- Gnuplot 純畫圖 
GNUPLOT 是一套跨平臺的數學繪圖自由軟體, 可以繪製數學函數圖形, 也可以從純文字檔讀入大量數據 (例如座標資料), 繪製統計圖表等等。 它不是統計軟體, 也不是數學軟體, 它純粹只是一套函數/資料繪圖軟體。 它只專心做一件事 - 畫圖 - 但是把這件事做得非常完整。 最重要的是, 它與其他軟體保持良好的溝通: 可以產生 png, svg, ps, hpgl, ... 等等開放的圖形檔案格式的輸出, 供文書處理/簡報/試算表/... 等等軟體匯入。 如果再學一點 regular expression, 更可以將任何有規律的文字座標檔轉換成 gnuplot 認得的簡單格式, 滿足你任何資料繪圖的需求。 這種 「組合式學習」 的設計, 在加上它歷久不衰的特性, 使它具有 長遠學習投資價值, 大力推薦給所有理工科系的同學, 及其他任何科系需要做統計繪圖的同學.

* Official gnuplot documentation 

沒有留言:

張貼留言

[Git 常見問題] error: The following untracked working tree files would be overwritten by merge

  Source From  Here 方案1: // x -----删除忽略文件已经对 git 来说不识别的文件 // d -----删除未被添加到 git 的路径中的文件 // f -----强制运行 #   git clean -d -fx 方案2: 今天在服务器上  gi...