gnuplot科學(xué)繪圖是一款免費(fèi)的便攜式命令行驅(qū)動(dòng)圖形繪圖軟件,它是使用命令行來繪圖的,功能包括二維和三維繪圖,數(shù)量龐大的輸出格式,交互式輸入或腳本驅(qū)動(dòng)的選項(xiàng),和一大套腳本實(shí)例。雖然名字里包含了GNU,但是它并不是GNU的一個(gè)部分。
軟件說明
用于Linux,OS/2,微軟Windows,OSX,VMS,和許多其他平臺(tái)。源代碼是有版權(quán),但自由發(fā)布(即,你不必為它付出)。它最初是為了使科學(xué)家和學(xué)生數(shù)學(xué)可視化功能和數(shù)據(jù)交互,但已發(fā)展到支持很多非交互式應(yīng)用,如Web腳本。它也可以用來作為由像倍頻第三方應(yīng)用繪圖引擎。 gnuplot一直支持,并自1986年以來正在積極發(fā)展。
功能說明
Gnuplot支持多種類型地塊在任何2D和3D。它可以通過繪制線,點(diǎn),箱,等高線,矢量場(chǎng),表面和各種相關(guān)文字。它也支持各種專業(yè)繪圖類型。演示這里
Gnuplot支持多種不同類型輸出:交互式屏幕終端(鼠標(biāo)和熱鍵輸入),直接輸出到筆式繪圖儀或現(xiàn)代打印機(jī),并輸出到多種文件格式(EPS,無花果,JPEG ,乳膠,METAFONT,PBM,PDF,PNG,后記,SVG,...)。 gnuplot很容易擴(kuò)展到包括新輸出方式。最近增加包括基于aquaterm(OSX)交互終端和wxWidgets(多平臺(tái))。
安裝與使用
1.Linux下的安裝
在命令行下輸入
#apt-getinstallgnuplot
系統(tǒng)自動(dòng)獲取包信息、處理依賴關(guān)系,就可以完成安裝
安裝完畢后,在命令行下運(yùn)行:
$gnuplot
就進(jìn)入了gnuplot
系統(tǒng)出現(xiàn):
gnuplot>
這個(gè)是這個(gè)軟件的提示符,熟悉shell的同學(xué)都曉得這個(gè)gnuplot的shell。所有的命令都在這里輸入。
2.Windows下的安裝
下載,釋放到本地硬盤的目錄里,假設(shè)是c:gnuplot。然后到這個(gè)目 錄的下查找bin這個(gè)目錄,在bin目錄下有一個(gè)名為wgnuplot.exe的文件,雙擊該文件,就出現(xiàn)了GUI界面的gnuplot。
至此,你已經(jīng)成功安裝了gnuplot,可以開始下面的操作了
新手上路、牛刀小試
既然安裝好了gnuplot,那就要來試試看,畫個(gè)最簡(jiǎn)單的吧,sin(x)
在提示符下面輸入:
gnuplot>plot[-3.14:3.14]sin(x)
然后就可以看到結(jié)果了,如圖:
上面有橫軸有縱軸,還有圖例,好像比較小巧的軟件還不能有那么全的功能,我知道的就是matlab可以畫,可能其他數(shù)學(xué)軟件也可以,不過比起這個(gè)小個(gè)頭的軟件..........
如果你不需要上面的圖例,你可以在運(yùn)行:
gnuplot>unsetkey
如果要還原
gnuplot>setkeydefault
然后再運(yùn)行上面的繪圖命令就可以實(shí)現(xiàn)沒有圖例或者恢復(fù)圖例的效果了
實(shí)戰(zhàn)
一般情況下使用gnuplot都是科學(xué)繪圖,因此很多都是放在文章里面。一般優(yōu)秀的科技文獻(xiàn)都是用latex來編寫的,所以gnuplot提供了直接輸 出 tex文件的功能,只需要把output設(shè)置為latex就可以了。下面來看一個(gè)例子,就把上面的正弦曲線插入到你的文章中。在命令行下輸入:
gnuplot>setterminallatex
setoutput"sin.tex"
plot[-3.14:3.14]sin(x)
那么程序自動(dòng)生成了一個(gè)tex文件,其包含一系列代碼,都是繪圖用的,可以用寫字板打開,里面都是一些指令,你完全可以忽略掉。你可以把這個(gè)文件直接插入你的文章中,例如
egin{figure}
egin{center}
input{sin.tex}
end{center}
end{figure}
編譯成PDF后的效果如圖
以后凡是要生成插入latex的圖片,就可以用上面的辦法實(shí)現(xiàn)。
添油加醋
當(dāng)然前面的圖已經(jīng)很不錯(cuò)了,就是稍顯單調(diào),這里給它加點(diǎn)裝飾,來個(gè)x軸和y軸的提示、圖片是說明。這樣才更像一幅論文里面的圖片。在命令行下輸入以下代碼:
gnuplot>setterminallatex
setoutput"sinagain.tex"
setsize5/5.,4/3.
setformatxy"$%g$"
settitle"Thisisaplotof$y=\sin(x)$"
setxlabel"Thisisthe$x$axis"
setylabel"Thisis\the\$y$axis"
plot[0:6.28][0:1]sin(x)
依舊,生成一個(gè)tex文件,安裝前面講的方法把它包含進(jìn)來。然后編譯成PDF的效果就是如圖了:
這里用到?思父雒睿?
setsize設(shè)置圖片的大小
setformatxy設(shè)置x、y軸文字的格式
settitle設(shè)置圖片標(biāo)題
setxlabel設(shè)置x軸的文字
錦上添花
一般情況下,科技論文的圖片很多都含有好幾個(gè)圖線,那么這里就介紹下如何在一張圖里顯示多張圖片。
先看代碼:
gnuplot>setterminallatex
setoutput"combine.tex"
setformatxy"$%g$"
settitle"Combination"
setxlabel"$x$axis"
setylabel"$y$axis"
plot[-3.14:3.14]0.2*xwithpoints,sin(x)withlines
這里沒有很特別的地方,只是plot多了一個(gè)項(xiàng)目,當(dāng)要繪制多個(gè)圖線的時(shí)候需要用逗號(hào)來分隔,注意這里不是中文的逗號(hào),而是西文的逗號(hào)。另外with后面的參數(shù)是說用什么線性來繪制。出來的效果看下面的圖:
精雕細(xì)琢
接下來再對(duì)圖片進(jìn)行加工。一般圖片x軸每個(gè)計(jì)數(shù)單位都是希望能夠控制的,而不是系統(tǒng)自己來決定的,那么可以通過以下的代碼來實(shí)現(xiàn)。
看代碼:
gnuplot>setterminallatex
setoutput"tic.tex"
setformaty"$%g$"
setformatx"$%.2f$"
settitle"Thisis$sin(x)$"
setxlabel"Thisisthe$x$axis"
setylabel"$sin(x)$"
setxtics-pi,pi/4
plot[-pi:pi]sin(x)
把生成的tex文件插入你的latex文件中,就出現(xiàn)了以下的效果:
還是沒有大變化,就加了一個(gè)setxtics這個(gè)是設(shè)置x的間距,也就是從-pi開始、每隔pi/4出現(xiàn)一次,pi是gnuplot內(nèi)建的一個(gè)變量,所以只要輸入pi,系統(tǒng)知道其含義。