最近為了學(xué)習一個(gè)軟件,機器總是跑在Linux下,卻意外的發(fā)現了一些很好的軟件,Gnuplot就是其中一個(gè)。Gnuplot是一個(gè)強大的命令式科學(xué)繪圖程序。最早于1986 年由 Colin kelley 和 Thomas Williams 所開(kāi)發(fā),后來(lái)的許多參與者都在為不同的“終端”創(chuàng )建變種方面做出了貢獻。Gnuplot可以將數學(xué)函數或數據繪制成2D或3D的圖形。最為重要的是,Gnuplot 是一種免費的繪圖工具,而且可以在各種操作系統中使用。這意味著(zhù),在科學(xué)繪圖或者數據擬合等一般需求時(shí),我們不必再為經(jīng)濟問(wèn)題而使用盜版的Matlab,Gnuplot完全可以滿(mǎn)足我們的基本需求。
一、Gnuplot的下載及安裝
1.官方網(wǎng)站下載軟件包,自行安裝 http://www.gnuplot.info/index.html。
Gnuplot的官方網(wǎng)站雖做得比較簡(jiǎn)單,但其提供了各種操作系統下的軟件版本,而且官方網(wǎng)站還提供了各種教程、使用經(jīng)驗、論壇等內容的鏈接,在下載軟件的同時(shí)我們還可以得到許多使用的幫助,所以推薦大家到官方網(wǎng)站上下載Gnuplot,順便瀏覽下官方網(wǎng)站的各個(gè)板塊。
2.Fedora 下在線(xiàn)安裝 #yum install gnuplot
或者使用Fedora 的軟件安裝與卸載工具搜索Gnuplot ,下載、安裝Gnuplot。
3.Ubuntu 下在線(xiàn)安裝 #apt-get install gnuplot
或者使用Ubuntu 的軟件中心搜索Gnuplot ,下載、安裝Gnuplot。
4.Windows 下安裝時(shí)只需從官方網(wǎng)站上下載win32的zip壓縮包,將其解壓縮,釋放到本地硬盤(pán)的某個(gè)目錄里即可。
二、Gnuplot 的運行
1.Linux 下只需打開(kāi)終端,輸入gnuplot 即可,此時(shí)終端中會(huì )顯示程序的版本等一些信息,并進(jìn)入Gnuplot的命令模式。
2.Windows 下要找到解壓目錄的下bin這個(gè)目錄,在bin目錄下有一個(gè)名為wgnuplot.exe的文件,雙擊該文件,就會(huì )出現GUI界面的gnuplot。
三、Gnuplot 使用的簡(jiǎn)單介紹
1.繪制簡(jiǎn)單的函數
Gnuplot的基本運算符有:+ - * / 等,x**4表示x4。
>plot sin(2*x)
即可繪制出簡(jiǎn)單的正弦函數曲線(xiàn),程序自動(dòng)設定坐標范圍。你也可以自己設定坐標范圍:
>set xrange [-pi:pi]
當然,我們可以在繪圖的時(shí)候直接設定坐標的范圍:
>plot [-pi:pi] sin(x)
你也可以繪制簡(jiǎn)單的三位函數圖。比如繪制z(x,y)=x2+y :
>splot x**2+y
如需設定坐標范圍,則輸入:
>splot [-10:10] [-20:20] x**2+y
設置坐標軸為對數坐標:
>set logscale x
2.命名圖像與坐標軸
>set title "示例"
>set xlabel "x 軸"
>set ylable "y 軸"
以上幾條命令將圖像的標題命名為“示例”,x軸命名為“x 軸”,y軸命名為“y 軸”。
3.改變坐標軸的標識,顯示網(wǎng)格
>clear
>plot [-pi:pi] sin(x)
>set xtics ("-180" -pi,"-90" -pi/2,"0" 0,"90" pi/2,"180" pi)
>set grid
以上幾條命令首先將圖形窗口清空,然后繪制sin(x)函數,改變坐標軸的標識,只顯示五個(gè)角度值,最后顯示網(wǎng)格。
4.設置圖例的位置
>plot sin(x) title "sine" with linepoints pointtype 5
>plot sox(x) t "cosine" w boxes lt 4
>set key left
>set key bottom
>set key outside
上面的第一條語(yǔ)句繪制一幅正弦曲線(xiàn),圖例的名稱(chēng)為“sine”,線(xiàn)型為linepionts(點(diǎn)畫(huà)線(xiàn)),點(diǎn)的類(lèi)型為pionttype(點(diǎn)),圖形的顏色為5(紅色);第二條語(yǔ)句使用了簡(jiǎn)寫(xiě)的方法。Gnuplot默認將圖例放在右上角的邊框內,后面的幾條命令,將其位置進(jìn)行變動(dòng)。
關(guān)于線(xiàn)型、點(diǎn)類(lèi)型、顏色、線(xiàn)寬等的具體設置請參考Gnuplot的使用指南。
5.在同一幅圖中的同一區域繪制多條曲線(xiàn)
>plot sin(x) title "sin(x)" w l lt 1,cos(x) title "cos(x)" w l lt 2
上面的命令將在同一圖中的同一坐標系中繪制sin(x)(線(xiàn)型為直線(xiàn),顏色為紅色)和cos(x)(線(xiàn)型為直線(xiàn),顏色為綠色)。
6.在同一幅圖中的不同區域繪制多幅圖
*設定坐標范圍
>set xrange [-pi:pi]
*將屏幕或圖像文件的邊框比例設為1
>set size 1,1
>set origin 0,0
*程序進(jìn)入多圖繪制模式
>set multiplot
*設置第一幅圖占整幅圖的1/4,并設置其原點(diǎn)為整幅圖的0,0.5處,繪制sin(x)函數
>set size 0.5,0.5
>set origin 0,0.5
>plot sin(x)
設置第二幅圖戰整幅圖1/4,并設置其原點(diǎn)為整幅圖的原點(diǎn),繪制1/sin(x)函數
>set size 0.5,0.5
>set origin 0,0
>plot 1/sin(x)
*設置第一幅圖占整幅圖的1/4,并設置其原點(diǎn)為整幅圖的0.5,0.5處,繪制cos(x)函數
>set size 0.5,0.5
>set origin 0.5,0.5
>plot cos(x)
*設置第一幅圖占整幅圖的1/4,并設置其原點(diǎn)為整幅圖的0.5,0處,繪制1/cos(x)函數
>set size 0.5,0.5
>set origin 0.5,0
>plot 1/cos(x)
*還原為單幅圖繪制模式
>unset multiplot
*還原所有的設置
>reset
7.繪制數據圖
Gnuplot繪制數據圖與Matlab有很大不同,它不許要用戶(hù)定義變量,把數據挨個(gè)輸入,而是以讀取數據文件的形式,將數據繪制成圖。具體步驟如下:
(1)在當前文件夾建立一個(gè)文本文檔,命名為example(可以為任意后綴名,如txt、inp等),將數據粘貼進(jìn)去。注意x軸,y軸,或z軸的數據分別寫(xiě)為一列,每一列之間以空格或逗號隔開(kāi)(我喜歡用Tab)。
1 5 10 10
2 10 20 30
3 15 30 50
4 20 40 70
5 25 50 90
*以第一列為x軸,第二列為y軸,繪制二維數據圖
>plot "example.inp" using 1:2
*以第一列為x軸,第二列為y軸,第三列為z軸,繪制三維數據圖
>splot "example.inp" using 1:2:3
*以第一列為x軸,第二列、第三列、第四列的平均值為y軸,最小值為第二列,最大值為第四列(using修飾符中指定為x:y:ylow:yhigh),with函數yerrorbars)
plot "example" 1:($2+$3+$4)/3:2:4 title "example" with yerrorbars
8.數據擬合
Gnuplot也提供了數據強大的擬合功能,這里以簡(jiǎn)單的一次函數和二次函數為例說(shuō)明。
*以一次函數來(lái)擬合第一列和第二列數據,得到擬合參數a,b,及誤差
>fit a*x+b "example" via a,b
*以a,b,為參數繪制直線(xiàn),同時(shí)將example中的數據點(diǎn)畫(huà)出
>plot 5*x-2.20316e-13,"example"
*以二次函數來(lái)擬合
>fit a*x**2+b*x+c "example' via a,b,c
>plot 1.65386e-13*x**2+5*x+1.30488e-12,"example"
9.輸出圖像文件
Gnuplot支持輸出為常見(jiàn)的圖片或文檔文件類(lèi)型,包括pdf、jpeg、png、gif等等,具體可以通過(guò)>set terminal來(lái)查詢(xún)。
>set term jpeg
>set output "example.jpg"
>replot
此時(shí)便在當前文件夾產(chǎn)生一個(gè)名為“example.jpg”的圖片。
本文給出了幾個(gè)最常使用的幾個(gè)繪圖功能,也幾乎是我知道的全部,對于像我一樣的初學(xué)者入門(mén)應該有所幫助。
參考來(lái)源:
1.http://www.osedu.net/yuanchuang-article/ns2/2011-07-30/282.html
2.http://randle.wordpress.com/2007/06/12/gnuplot-induction/
3.http://dsec.pku.edu.cn/dsectest/dsec_cn/gnuplot/index.html
4.http://www.duke.edu/~hpgavin/gnuplot.html
本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請
點(diǎn)擊舉報。