1. 程式人生 > >談談gnuplot(五):座標取值範圍及刻度

談談gnuplot(五):座標取值範圍及刻度

http://qbk378.lofter.com/post/b28f6_14f062

我們從上一講結束時的影象開始:

gnuplot> set samples 500
gnuplot> set xlabel "X"
gnuplot> set ylabel "Y"
gnuplot> set title "sin(5*x) 函式影象"
gnuplot> unset key
gnuplot> plot sin(5*x)


這裡預設的 x 取值範圍是從 -10 到 10。我們現在希望 x 的取值範圍從 -2π 到 2π,這樣函式影象可以正好包括十個週期。橫座標取值範圍由 xrange

 引數控制。還記得gnuplot裡面所有引數都由 set 命令控制嗎?取值範圍由方括號內的一對數表示,兩個數之間用冒號隔開:
gnuplot> set xrange [-2*pi:2*pi]
gnuplot> replot

(不要忘記,每一個和 x 座標有關的引數,都對應有一個和 y 有關的引數,所以縱座標的取值範圍由 yrange 控制。)

現在橫座標取值範圍已經符合我們的要求了,但是橫軸上的刻度並不是我們想要的。我們不想要刻度出現在整數位置上,而是希望刻度為 π 的整倍數。另外,我們還希望兩個主刻度之間 π/2 的位置有一個分刻度,分刻度只要有刻度就可以,沒必要標出數字了。gnuplot裡面,橫軸主刻度和分刻度,分別用 xtics

 和 mxtics 表示(m 表示 minor)。我們試試下面的命令:
gnuplot> set xtics pi
gnuplot> set mxtics 2
gnuplot> replot

這裡的命令表示:橫軸主刻度間隔為 π,每兩個主刻度之間被分刻度分為2份。這組命令得到的影象如下:


現在刻度間隔對了,但是顯示的數字並不是我們想要的。我們希望顯示字元 π,而不是小數3.14159。其實,set xtics命令的形式並不是唯一的。我們試試下面的形式:
gnuplot> set xtics ("-2π" -2*pi, "" -1.5*pi 1, "-π" -pi, "" -0.5*pi 1, "0" 0, "" 0.5*pi 1, "π" pi, "" 1.5*pi 1, "2π" 2*pi)
gnuplot> replot


這裡 set xtics 命令直接規定了每個刻度的位置和顯示的字元。每一個刻度對應三個引數:顯示字元、刻度位置、刻度等級。刻度等級為 0 時表示主刻度,等級為 1 時表示分刻度。對於主刻度(等級為 0 時),表示等級的引數也可以省略不寫。各個刻度的引數之間用逗號隔開。從上面的例子我們還看出,顯示字元可以為空,也就是隻標刻度,不顯示字元。這組命令得到的影象如下:


現在橫軸座標已經完全符合我們要求了,我們把縱軸座標也調整一下,因為我們不需要這麼細的劃分縱軸刻度:
gnuplot> set ytics -1,0.5,1
gnuplot> replot

這裡又用了 set ytics 命令的另一種形式(再次提醒一下,xtics 和 ytics 語法是完全一樣的):後面跟了逗號隔開的三個引數。這三個引數分別表示:最小主刻度、主刻度步長、最大主刻度。影象如下:


現在我們完成了對於座標軸的一些微調,影象看起來更順眼了。 

本文引用地址:http://blog.sciencenet.cn/blog-373392-497484.html