gnuplot簡介

Gnuplot是一個很有名,很方便的數學繪圖程式。我們在學習函數, 要分析一組資料, 最自然的想法就是: 「不知圖形長得怎麼樣? 」gnuplot 就是很方便可以把函數, 數字轉成圖形的程式。而且不二維, 三維的也可以哦。

版本

Gnuplot 在個人電腦三大平台 Windows, Mac OS, Linux 都有。而且都可以 native 的方式執行 (在 Mac OS X 要用 aquaterm), 非常方便。

馬上使用

有多方便呢?比方說啦,執行以後,在它的指令列打入:

plot exp(-x)

然後按下 return ,也不用設什麼範圍,圖形馬上就出來!也就是說呢,你想看看某個函數長什麼樣子,馬上就見分曉。

離開gnuplot

我們學一個程式,通常第一步就是要學怎麼樣安全的脫身。在gnuplot這也很容易,只要打入:

exit

再按 return 就可以了。可能你自己也猜出來了。

比較兩個函數

我們常常知道兩個函數長得有什麼不一樣, 比方說想比較 sin, cos, 可以這樣做:

plot sin(x), cos(x)

就可以了。實在也很難想出更容易的指令!

圖形的設定與重畫

你有沒有發現, gnuplot 要畫函數, 什麼都不用設, 連 x 的範圍都不用! 這開始很方便, 久了之後, 你可能會想自設 x 範圍, 加上標題, 顯示 x, y 軸的名稱, 加上網格等等。要做任何的設定, gnuplot 是以 set 指令來下。

我們可以如果先以 set 指令下了一堆設定, 後面的圖形就可以依設定來畫。更神奇的是, 我們忘了做某個設定, 或是想要反悔, 還可以重設, 用 replot 叫 gnuplot 依新的設定來畫!

比方說, 我們要為前面的圖加上標題, 就是樣做:

set title "My Graph Title"
replot

其他常用設定

先看一下常用的 x, y 軸範圍設定。假設我們要設 x 軸是 -2pi 到 2pi, y 軸是 -1 到 1, 要這樣設:

set xrange [-2*pi:2*pi]
set yrange [-1:1]

其他常用的設定我們就列出說明一下, 不再舉例子:

set grid (畫出格線)
set xlabel "x軸的名稱"
set ylabel "y軸的名稱"

消去設定

我們做好的設定, 如果做新的設定, 就會覆蓋先前的設定。問題是, 不要某個設定該如何呢? 很容易, 就用 unset 指令, 做的事就是和 set 相反。比方說不要 title, 就是

unset title

請注意舊版是把要取消的設定前面加上 no。比方說不要 title, 就是 set notitle

圖形的儲存

我們當然會想把做好的圖存下來, 以便讓其他文件使用。我們要做的是兩件事, 第一是要設定我們的輸出格式, 第二是告訴 gnuplot 要存成什麼檔。Gnuplot 支援 ps, pdf, png, jpg 等多種格式。比方說, 我們現在要存成 postscript 格式, 檔名叫 mygraph.ps, 就是這樣下指令:

set output "mygraph.ps"
set term postscript
replot

自然, 要輸出成 pdf, 就是 set term pdf, 其他格式也都是類似的方式。

這是告訴 gnuplot, 以後圖形不要出現在螢幕上, 換成我們要求的格式輸出。

現在問題來了, 我們再讓圖出現在螢幕上呢? 那就是設回原有的輸出, 我們分各平台說明:

Linux 等 X-Windows 系統: set tem x11
Mac OS X: set term aqua
Windows: set term windows

如此就可以了。

其實 gnuplot 還支援更多的格式, 你可以用下面的指令查到詳細情形:

help term