終於可以開始畫圖了!先從簡單的函數映像入手吧。
gnuplot裡面的2D作圖命令是 plot。先試著畫一個正弦函數:
gnuplot> plot sin(5*x)
這個正弦函數看著有點彆扭,是吧?這是因為gnuplot預設的函數取樣為100個點,對於快速振蕩的函數,這個取樣率有點低。函數取樣數目由
samples 這個參數控制。在gnuplot裡面,所有參數賦值都由
set 命令完成。我們把函數取樣數目改為500:
gnuplot> set samples 500
gnuplot> replot
怎麼樣,現在看起來好多了吧?這裡用到了 replot 命令。顧名思義,replot 就是把剛才的 plot 命令重新執行一遍。
映像右上方的圖例(就是那個 sin(5*x) 後面帶一段橫線)看起來有點礙眼。在gnuplot裡面,這個圖例叫做
key。對於同時包含多組資料的映像來說,圖例是必要的。但是現在映像只包含一個函數,而且這個圖例的位置也不那麼對勁兒,我們先把它去掉:
gnuplot> unset key
gnuplot> replot
這裡我們看到,可以用 unset 命令取消一個參數設定。
現在礙眼的圖例沒有了,但是隨之而來的問題是,我們不知道這個映像究竟表示什麼意思。為了讓它成為一個完整的科學作圖,我們給它加上標題和座標軸標籤:
gnuplot> set title "sin(5*x) 函數映像"
gnuplot> set xlabel "X"
gnuplot> set ylabel "Y"
gnuplot> replot
xlabel 和
ylabel 分別表示橫軸和縱軸的標籤。在gnuplot裡,很多跟座標有關的參數,都有相應的 x 和 y 版本。title 雖然可以給映像加上標題,但是在真正的科學論文裡意義不大,因為所有論文插圖都要求配有文字說明(Caption)。引號內的內容為字串,大多數情況下雙引號和單引號沒有區別,除非遇到特殊字元(例如分行符號\n),這時候單引號會把特殊字元當成一般字元處理,而雙引號會按照特殊字元的意義將其展開。
這裡我們注意到,字串裡也可以包含中文。究竟是否支援中文,和 terminal 的種類有關係。有些 terminal 對 Unicode 支援不那麼好,這時候顯示中文就不那麼容易了。好在我們可以選擇那些比較有利的 terminal。
現在我們有了一個簡單的函數映像了。雖然看起來還不盡人意,但是沒關係,我們以後會把它逐漸完善。