字體:小 中 大 | |
|
|
2015/04/27 08:43:55瀏覽1717|回應0|推薦3 | |
如果熱悉gnuplot的人,那麼使用tikz用gnuplot畫數學圖形更是方便。如果以實用度來說,使用gnuplot來作圖更加實用。 要使用gnuplot,首先電腦要裝。以Mac來說,需要裝上程式開發套件,和x11環境,然後下載最新版的gnuplot原始碼,然後解壓縮後,用terminal進入該目錄,打上指令: 例如在gnuplot-5.0.0目錄下: ./configure make sudo make install 這三個命令就裝好了。 然後在TiKz中,使用 plot [id=anyword]function{gnuplot指令}就能畫圖了。記得在latex編譯的時候,要加上-shell-escape或是-enable-write18的參數(視tex版本,環境不同而定)。我是使用texlive,是用-shell-escape參數即可。例如 xelatex -shell-escape mygnuplot.tex 或是 pdflatex -shell-escape mygnuplot.tex 這樣子,在編譯到plot部分時,會自動用gnuplot執行運算,把gnuplot算好的結果(座標值)傳回到plot上面。 參數id 這一定要設定的,例如 \draw plot[id=sin, samples=30] function {sin(x)}; 這樣在編譯時,gnuplot 會產生一個名稱帶有id指定名稱的table檔,這個table檔理面就是含有圖形的30個座標,然後plot會讀取這些座標,然後畫出來。gnuplot角度的單位預設是radian。 參數 prefix 這是可以設定gnuplot產生的檔名前綴要用什麼,可以用它來作檔案管理,如設定到某個目錄。 參數 parametric 這個參數是用來畫 (x,y)=(f(t),g(t))的圖形, 變數一定要用t。如 \draw plot [parametric,id=lissajous, domain=0:2*pi, samples=100] function {sin(3*t), sin(4*t)}; 參數range=start:end xrange=start:end yrange=start:end 這些可以設定(x,y)值的範圍,方便作圖,例如ten(x),就可以設定yrange=-3:3,那麼3,-3區間以外的值就不會採用,就不會有分母接近0時的運算問題。 \draw plot [id=tan, domain=-2*pi:2*pi, samples=100, smooth,yrange=-3:3] function{tan(x)}; 參數 raw gnuplot 這個參數是完全使用gnuplot指令操作,具有最大的彈性, 不需要id以外的參數,例如,有一個實驗數據為test.dat: 1 2.5 2 4.3 3 5.1 4 8.4 從資料檔案讀資料畫出回歸直線: \draw[help lines](0,0) grid (4,8); \draw [red, dash] plot file{test.dat}; \draw plot [raw gnuplot, id=x] function{set xrange [0:4]; f(x)=m*x+b; fit f(x) 'test.dat' using 1:2 via m,b; plot f(x)}; 這個例子,就是用gnuplot讀取test.dat的第一列和第二列數據作回歸直線的運算後,畫出x值在0到4時的回歸直線。 gnuplot的功能很強,如果熟悉,那麼使用gnuplot算出函數的數據後再用到TiKz中繪圖是在實際的應用上面非常的方便。 |
|
( 知識學習|科學百科 ) |