# 繪圖環境參數
如第二章所述,只要鍵入?plot?sin(x),?'1.dat'?即可得到圖1?的結果。gnuplot?自動調整?X?軸、?Y?軸的顯示范圍,使圖形顯示在適當的位置并選擇不同的顏色、圖形,用以區別不同的函數或數據,也就是?gnuplot?自動調整其所需的繪圖環境。若我們需要一些特別的繪圖參數,如在?3D?中加入等高線、設定消去隱藏線、改變?X?軸、Y?軸的座標點名稱等,可由改變繪圖環境參數而改變之。?本章說明這些繪圖參數設定的方法與功能。
### Axis
繪圖參數在設定坐標軸方面的參數可分為變量名稱、數字格式、網格、顯示范圍、坐標軸顯示方式與顯示與否等六方面的設定:
### ?變量名稱設定
一般以?x?為橫軸上的變量。可用?dummy?設定為其它的名稱,?所繪函數的變量名稱亦隨之改變。如?set?dummy?t?將自變量改為?t,圖8、圖17、圖20?均改變自變量名稱。
### ?數字格式設定
設定數字的顯示方式與格式。由?format?此項參數設定顯示格式,其語法為?:
~~~
set format {<axes>} {"<format-string>"}
show format # 顯示各軸數字顯示的型式
~~~
其中?axis?為?x、y、z、xy?或預設為xy。format-string?為描述數字格式的字符串,可接受如?C?語言中?printf?對數字的?f、e、g?三種格式化描述,亦可加入文字?(必須少于100?字)。以下舉一些例子:?
~~~
set format xy "%.2e"
set format x "%3.0f cm"
~~~
顯示方式由?tics、xtics等設定。?
xtics?是對?X?坐標軸上的格點做設定。如起始點、結束點、間隔或在軸上特定點放特定的名稱。其語法為:
~~~
set xtics { {<start>, <incr>{, <end>}} |
{({"<label>"} <pos> {, {"<label>"} <pos>}...)} }
set noxtics # 不標示任何 X 軸上的標點。
show xtics # 顯示 X 軸標點的狀況。
~~~
下面是三個改變格點的例子。
~~~
# 每隔 2 格一個標點
set xtics -10,2,10
plot sin(x)
~~~

~~~
# 以文字作為標點
set xtics ("low" -10, "medium" 0, "high" 10)
plot sin(x)
~~~

~~~
# 在特定位置放上標點
set xtics (-10,-9,-7,-3,0,pi/2,2*pi)
plot sin(x)
~~~

xdtics?將?X?座標軸上標點名稱依?0,1,…改為?Sun,Mon,…??Sat?等。?大于?7?的數目除以7?取其馀數。
~~~
# 將標點名稱改為 Sun, Mon, ... Sat 等
set xdtics
plot [0 : 10] sin(x)
~~~

ytics,?ymtics,?ydtics,?ztics,?zmtics,?zdtics?與?xtics,?xmtics,?xdtics?相似,不同點是作用在不同的軸上。
ticslevel?是在畫?3D?圖形時,調整?Z?軸的相對高度。語法為:?
~~~
set ticslevel {<level>}
show tics
~~~
### 網格設定
在?XY?座標平面上依刻度畫上方格子。
~~~
# 設定變數為 t
set dummy t
# 設定 X 軸 Y 軸標點的格式
set format xy "%3.2f"
# 產生網格
set grid
plot sin(t)
~~~

### 座標顯示方式
分為線性與對數兩種。一般為前者,若要改為對數方式,其語法為:?
~~~
set logscale <axes> <base>
set nologscale <axes>
show logscale
~~~
其中?axes?為?X?軸、Y?軸、Z?軸的任意組合。base?預設為?10。
### 顯示范圍設定
改變各軸的顯示范圍。autoscale?參數設定后?gnuplot?自動調整顯示范圍。其余的如?rrange,?trange,?xrange,?yrange,?zrange?則是由使用者設定該軸的范圍,以?xrange?為例,其語法為:?
~~~
set xrange [{<xmin> : <xmax>}]
~~~
其中參數?<xmin>?與?<xmax>?代表?X?軸的起點與終點,?可以是數字或數學式子。如圖7?中?set?[0:10]?sin(x)?設定?X?軸顯示范圍為?0?與?10?之間。此時可用
~~~
set xrange [0:10]
plot sin(x)
~~~
使用?autoscale?參數調整顯示范圍,其語法為:?
~~~
set autoscale <axes>
set noautoscal <axes>
show autoscale
~~~
其中?<axes>?為?gnuplot?欲調整的軸,可以是?x,?y,?z?或?xy,預設為所有的軸。
### ?座標軸顯示與否設定
設定是否要畫出座標軸,以?X?軸為例:?
~~~
set xzeroaxis # 設定顯示 X 座標軸
set noxzeroaxis # 設定不顯示 X 座標軸
show xzeroaxis # 檢查 X 座標軸顯示與否
~~~
### Label
gnuplot?除了繪出圖形外,尚可加入注解做為輔助說明。這注解包括文字與線條兩方面,其提供的設定有:
<table><tbody><tr><td valign="top"><p>功能</p></td><td valign="top"><p>繪圖參數名稱</p></td></tr><tr><td valign="top"><p>線條</p></td><td valign="top"><p>arrow</p></td></tr><tr><td valign="top"><p>文字注解</p></td><td valign="top"><p>key,?label,?time,?title,?xlabel,?ylabel,?zlabel</p></td></tr></tbody></table>
### ?線條
在圖上畫一線段可以選擇有無箭頭。其語法為:
~~~
set arrow {<tag>} {from <sx>,<sy>{,<sz>}}
{to <ex>,<ey>{,<ez>}} {{no}head}
unset arrow {<tag>} # 刪除一線條
show arrow # 顯示線條使用情況
~~~
其中參數?<tag>?是給該條線條一個整數名稱,若不設定則為最小可用整數。此線條由坐標?(sx,?sy,?sz)?到?(ex,?ey,?ez)?(在?2D?中為?(sx,?sy)到(ex,?ey))。參數?nohead?為畫沒有箭頭的線段,參數?head?或沒有?nohead?為畫有箭頭的線段。圖24?中使用沒有箭頭的線段作為輔助說明。以下為一些例子:
~~~
# 畫一帶有箭頭的線條由原點到 (1,2)。
set arrow to 1,2
# 畫一名為 3 的帶箭頭線條 由 (-10,4,2) 到 (-5,5,3)。
set arrow 3 from -10,4,2 to -5,5,3
# 改變名為 3 的線條起始點至 (1,1,1)。
set arrow 3 from 1,1,1
# 刪除名為 2 的線條。
unset arrow 2
# 刪除所有線條。
unset arrow
# 顯示線條的使用情形。
show arrow
~~~
### 文字注解
分為設定標題?(title),標示?(label)?與時間?(time)?三部份。標題設定為在圖的正上方加上說明本圖的文字。其語法為:?
~~~
set title {"<title-text>"} {<xoff>}{,<yoff>}
show title
~~~
設定參數?<xoff>?或?<yoff>?為微調標頭放置的位址。?xlabel,?ylabel,?zlabel?的語法與?title?相同,其各自描述一坐標軸。
標示?(label)?為在圖上任一位置加上文字說明,一般與線條一并使用。其語法為:
~~~
set label {<tag>} {"<label_text>"}
{at <x>,<y>{,<z>}}{<justification>}
unset label {<tag>} # 刪除一標示
show label # 顯示標示使用情況
~~~
其中參數?<tag>?與?"線條"?(arrow)?中?<tag>?意義相同,用以區別不同的?label。參數?<justification>?是調整文字放置的位置,可以是?left,right?或?center。舉一些例子:
~~~
# 將 y=x 放在座標 (1,2) 之處。
set label "y=x" at 1,2
# 將 y=x^2 放在座標 (2,3,4) 之處,并命名為 3。
set label 3 "y=x^2" at 2,3,4 right
# 將名為 3 的標示居中放置。
set label 3 center
# 刪除名為 2 的標示。
set nolabel 2
# 刪除所有標示。
set nolabel
# 顯示標示使用情形。
show label
~~~
一般繪一圖形后,gnuplot?將函數名稱或圖形名稱置于右上角。?key?參數設定可改變名稱放置位置。其語法為:
~~~
set key
set key <x>,<y>{,<z>}
unset key
show key
~~~
其中參數?<x>,?<y>,?<z>?設定名稱放置位置?。unset?key?為不顯示名稱,若使用?set?key?則再度顯示名稱。若使用?set?key?0.2,?0.5?則顯示函數名稱于坐標?(0.2,?0.5)?之處。
~~~
unset key
plot sin(x), cos(atan(x))
~~~

~~~
set?key?at?2,?0.5
plot [-pi/2:pi] cos(x), -( sin(x) > sin(x+1) ? sin(x) : sin(x+1))
~~~

時間參數設定是將圖產生的時間標在圖上。其語法為
~~~
set time {<xoff>}{,<yoff>}
unset time
show time
~~~
設定參數?<xoff>?或?<yoff>?為微調時間放置的位址,正數表示向上或向右,負數為反方向,以字的長寬作為單位。
~~~
set title "sin(x)+sin(2*x)"
set xlabel "X-axis"
set ylabel "Y-axis"
set arrow from -2,1 to -2.5,0.4
set label "Local max" at -2,1.1
unset key
set time
plot [-5:5] sin(x)+sin(2*x)
~~~

- 前言
- gnuplot 中的數據平滑
- 利用 Maxima 求解常微分方程
- Maxima 的繪圖功能 1
- Maxima 的繪圖功能 2
- Maxima 的繪圖功能 3
- Maxima 矩陣及矢量運算 1
- Maxima 矩陣及矢量運算 3
- Maxima 矩陣及矢量運算 4
- maxima 學習筆記(coeff 函數的應用)
- maxima 代數表達式變換
- maxima 學習筆記(基本微積分)
- maxima 代數方程求解
- Maxima 中的復數運算
- Maxima 的三角函數化簡功能
- Maxima 的基本微積分操作
- 利用 gnuplot 繪制時間序列圖
- gnuplot 入門教程 1
- gnuplot 入門教程 2
- gnuplot 入門教程 3
- gnuplot 入門教程 4
- gnuplot 讀取逗號分隔的數據文件
- scilab 讀取處理 wav 文件
- scilab 讀取處理 wav 文件 (2)
- Scilab 處理聲音數據(補充)
- 利用 SCILAB 設計 FIR 濾波器(窗函數法)
- 利用 SCILAB 設計 FIR 濾波器(Minimax法)
- 利用 SCILAB 設計 iir 濾波器設計(模擬濾波器雙線性變換法)
- Scilab 的繪圖函數(1)
- Scilab 的繪圖函數(2)
- Scilab 的繪圖函數(3)
- Scilab 的繪圖函數(4)