1.Gnuplot入門教學六月12,2007關於這個軟體,網路上已經有許多介紹性的文章。本篇文章以物理系學生常用的功能「二維畫圖」與「數據fit」為主題,作為一個快速引入門的指引。相信只要學些基本基礎後,就可以依照自己的目的去自學了!以下為目錄:(一)下載軟體(二)二維函數畫圖(三)二維資料數據作圖(四)二維資料數據fitting(擬合、模擬)(五)輸出成圖檔(六)應用實例(七)參考與延伸資料(一)下載軟體從軟體的官方網頁,可進入下載頁面(SourceForge.net)★Windows用戶1.點選』Architecture』項目為』i386″的檔案(類似』gp423win32.zip』的檔名)即可下載二進位程式。2.將程式解壓縮展開後,執行bin\wgnuplot.exe即可。ps.事實上gnuplot只需要wgnuplot.exe一個檔案即可執行,可當作輕巧的可攜式綠色軟體。不過就沒有help功能了。★非Windows用戶(以UbuntuLinux為例)用Synaptic套件管理程式搜尋』gnuplot』即可由套件庫中安裝。亦可自己下載原始碼來編譯:1.點選』Architecture』項目為』Platform-Independent』的檔案(類似』gnuplot-4.2.3.tar.gz』的檔名)即可下載程式原始碼。2.將程式解壓縮展開後,從終端機在該資料夾裡,執行編譯安裝指令:./configuremakesudomakeinstall從此之後,可從終端機輸入』gunplot』指令來使用此程式。(二)二維函數畫圖1.gnuplot的畫圖指令非常簡單。例如畫sin(x)的圖,指令為:plotsin(x)2.設定圖上的標題和座標軸名稱:settitle'Exp'setxlabel'xaxis'setylabel'yaxis'plot[x=0:2][0:20]exp(x**2)注意:gnuplot的次方是用「**」(而不是「^」)(三)二維資料數據作圖1.先在「gnuplot程式目錄」下,建立一個數據資料檔,檔名命名為『data.txt』,檔案內容為(中間以一個空格格開):0024418634863101011214014197162602.依這個檔案裡的數據作圖的指令為:(數據的資料格式為xy)plot'data.txt'注意:假如把數據檔放在別的地方,譬如C:\,引號裡就必須改成完整路徑’c:\data.txt’(四)二維資料數據fitting(擬合、模擬)1.以一次函數ax+b來fit:fita*x+b'data.txt'viaa,b『Finalsetofparameters』裡的a,b即為fit的結果。將fitting結果的函數圖形與原始數據,畫在同張圖上:plot16.0833*x-37.8889,'data.txt'2.以二次函數ax2+c來fit:fita*x**2+c'data.txt'viaa,c將fitting結果的函數圖形與原始數據,畫在同張圖上:(如下,也可以先指定a,c值)a=1.00828c=-0.639344plota*x**2+c,'data.txt'(五)輸出成圖檔1.設定輸出終端機類型(輸出成png圖檔),以及輸出圖檔檔名:setterminalpngsetoutput'filename.png'2.執行想輸出成圖檔的繪圖指令,圖檔就會輸出到gnuplot程式目錄下。要關掉gnuplot後,圖檔才能正常讀取。(原因不明@@)若要使繪圖指令輸出的圖,改回輸出到螢幕上顯示:setterminalwindows指令setterminal可簡寫為setterm(六)應用實例清華物理近代物理實驗:RutherfordScattering的實驗數據fitting(七)參考與延伸資料gnuplot簡介,yenlunggnuplot的Help,Topic。Gnuplot導讀,中央研究院計算中心ASPAC計劃。GNUPLOT使用手冊,中央研究院計算中心ASPAC計劃。網頁版本的gnuplot與一些簡介教學!!GNUPLOT科學繪圖工具網頁介面,台灣師大物理系物理教學示範實驗教室。2.GNUPLOT科學繪圖工具網頁介面Gnuplot是一個可以繪製2D與3D數學函數或數據資料的程式.若是你需要一個簡單的計算器或繪圖工具,Gnuplot會是個不錯的選擇.在各種作業系統下都有對應版本.window版本初學者建議瀏覽WGNUPLOT.HLP(請按右鍵下載存檔後開啟)幾年前中央研究院曾經將gnuplot的說明(pdf)翻譯成中文版(只可惜現在我找不到資料了)我們詴圖建立網頁介面讓網友上網時更方便使用.Gnuplot(會區別大小寫)內定變數2D時為x,3D時為x,y認得一般數學符號與函數如:+-*/:x**4代表x4三角函數:sin,cos,tan.asin,scos,tanh(也認得常數pi)超越函數:sinh,cosh,tanh指數與對數:exp,log簡單指令:plotsin(2*x)便可畫出對應函數圖(點選以上連結)程式會自動幫你選擇x,y座標範圍另外可以詴詴plotx**3或plotcosh(x)當然你也可以自行設定x,y的範圍plot[-5:5]cosh(x),plot[-10:10][-1.5:1.5]sin(x),plot[][0:2]tanh(x)以上的設定只對該次繪圖有效,也可以用以下指令設定setxrange[-10:10]或setyrange[-2:2]接下來教你簡單繪製3D的圖形想畫z(x,y)=-x3-y=splot-x**3-y你可以猜想該如何設定範圍了吧!例如:splot[-2:2][-2:2]2*(x**2+y**2)*exp(-x**2-y**2)setautoscalez會自動幫你選擇z軸範圍(或者在上一指令中不標示z軸範圍也可以)畫3D圖形時有時會有線條重疊怎麼消除(和上圖比較一下!)sethidden3d;splot[-2:2][-2:2]2*(x**2+y**2)*exp(-x**2-y**2)嗯!好一點可是似乎解析度不太夠setisosamplesx_rate,y_rate(初始設定為10,10因此不夠精細)比較以下兩圖的精細度sethidden3d;setisosamples30,30;splot[-2:2][-2:2]2*(x**2+y**2)*exp(-x**2-y**2)sethidden3d;setisosamples100,100;splot[-2:2][-2:2]2*(x**2+y**2)*exp(-x**2-y**2)如果想改變等位線圖的設定呢?指令如下:setcontourbase-在底部畫出等位線setcontourbase;sethidden3d;setisosamples30,30;splot[-2:2][-2:2]2*(x**2+y**2)*exp(-x**2-y**2)setcontoursurface-在3D表面畫等位線setcontoursurface;sethidden3d;setisosamples30,30;splot[-2:2][-2:2]2*(x**2+y**2)*exp(-x**2-y**2)setcontourboth-兩個都畫setcontoursurface;sethidden3d;setisosamples30,30;splot[-2:2][-2:2]2*(x**2+y**2)*exp(-x**2-y**2)setnocontour-都不要(初始設定)如果想改變觀看3D的視角與放大比例呢?setviewhorizontal_angle,vertical_angle,zoom例如:setview60,30,0.75sethidden3d;splot[-2.5:2.5][-2.5:2.5](x**2+3*y**2)*exp(1-(x**2+y**2))能夠用參數嗎?1.setparametric;setxrange[-6:6];setyrange[-6:6];settrange[0:10];setisosamples60;plot5*cos(t),2*sin(t)2.setparametric;setgrid;setxrange[0:30];setyrange[0:30];setzrange[0:80];splot2*u,u**2+v,v**2也可以畫極座標的圖形(參數用t)setpolar;plot3*cos(2*t)當然也可以從檔案讀入數據資料後繪圖,也可以做curvefitting(本線上版尚待擴充此功能)可以改變線條圖案顏色可以自行定義變數與函數(當作計算機使用):本線上版不支援...你可以在下方區域內輸入指令按送出後便傳回給你對應圖形本功能未來將結合討論區(討論時加上數據圖形)送出例如輸入splot[-2:2][-2:2]2*(x**2+y**2)*exp(-x**2-y**2)得:回物理教學示範實驗教室歡迎批評指教!電子郵件請按hwang@phy03.phy.ntnu.edu.tw作者:國立台灣師範大學物理系黃福坤最後修訂時間:07/21/201008:31:433.Gnuplot:餵我統計資料成果,為你產生圖形報表洪朝貴(朝陽科技大學資訊管理系教授)2004/05/11簡介GNUPLOT是一套跨平臺的數學繪圖自由軟體,可以繪製數學函數圖形,也可以從純文字檔讀入簡單格式的座標資料,繪製統計圖表等等。它不是統計軟體,也不是數學軟體。它的設計符合組合學習的理念:專心做一件事--純畫圖--就好,但是把這件事做得非常完整,並且與其他軟體保持良好的溝通管道。大力推薦給所有理工科系的同學,及其他任何科系需要做統計繪圖的同學。如果再學一點regularexpression,更可以將任何有規律的文字座標檔轉換成gnuplot認得的簡單格式,滿足你任何資料繪圖的需求。這,才是不會退流行,具有長遠投資價值,值得用心學習的技術。另外,我還幫它寫了一個GUI控制前端dynagpt-0.4,非常適合國中到大學程度的解析幾何教學,可惜還沒有時間寫手冊。現在就讓我們直接在命令列打gnuplot進入它的命令列環境。plotx*x-4*x+3#畫一條拋物線。注意它的對稱軸在x=2。a=1;b=-2;c=3#設定一些變數。plota*x*x+b*x+c#畫另一條拋物線。注意它的對稱軸在x=1。b=6;replot#第三條拋物線。它的對稱軸則是在x=-3。showxzeroaxis#目前的設定,並不會顯示x軸。setxzeroaxis#那麼將這個設定打開吧。replot#重畫一次,可以看到它與x軸有兩個交點。請自己畫畫看:x*x-2*x+3與x軸有幾個交點?畫一條與x軸相切的拋物線吧。不必擔心,這只是起個頭,等一下大部分的例子與數學都沒有直接的關係。我們有興趣的是gnuplot的操作,不是數學;而且下面的例子多半使用資料檔,較少畫數學函數。當然,學任何一套軟體,最先要學的就是:如何離開?exit或quit或直接按^D如何求助?例如想學replot的詳細用法,可以下:helpreplot當然像set或plot這種複雜的指令,進入helpset或helpplot之後,還有子選單。另外,命令列的快速鍵也很值得學。gnuplot用的並不是真正的readline介面,只提供其中少數幾個最常用功能,但已經很方便。人口成長史這份資料popgrowth.txt記載著美國加州與阿拉斯加州的人口成長史。plotpopgrowth.txt#繪製加州人口成長史。showdatastyle#現在看起來醜醜的,因為沒有連線。setdatastylelines#設定成連線模式。setgrid#模擬方格紙效果。settitlepopulationgrowth#加上標題。replot#重畫一遍,好多了。plotpopgrowth.txtusing1:3#改繪製阿拉斯加州人口成長史。showyti