概況
Gnu plot是一個命令行的互動式繪圖工具(command-driven interactive function plotting program)。用戶通過輸入命令,可以逐步設定或修改繪圖環境,並以圖形描述數據或函式,使我們可以藉由圖形做更進一步的分析。
gnu plot是由Colin Kelly和Thomas Williams於1986年開始開發的科學繪圖工具,支持二維和三維圖形。它的功能是把數據資料和數學函式轉換為容易觀察的平面或立體的圖形,它有兩種工作方式,互動式方式和批處理方式,它可以讓使用者很容易地讀入外部的數據結果,在 螢幕上顯示圖形,並且可以選擇和修改圖形的畫法,明顯地表現出數據的特性。
Gnuplot 4.6 中文手冊於2012-10-11 翻譯完成,上傳到 CSDN:《gnuplot 4.6中文手冊》
Linux安裝
Linux下的安裝
在命令行下輸入
# apt-get install gnuplot
系統自動獲取包信息、處理依賴關係,就可以完成安裝
安裝完畢後,在命令行下運行:
$ gnuplot
就進入了gnuplot
系統出現:
gnuplot>
這個是這個軟體的提示符,熟悉shell的同學都曉得這個gnuplot的shell。所有的命令都在這裡輸入。
Windows安裝
Windows下的安裝
到sourceforge搜尋gnuplot,然後下載win32的zip壓縮檔,裡面包含全部需要的檔案,下載,釋放到本地硬碟的目錄里,假設是c:\gnuplot。然後到這個目錄的下查找bin這個目錄,在bin目錄下有一個名為wgnuplot.exe的檔案,雙擊該檔案,就出現了GUI界面的gnuplot
至此,你已經成功安裝了gnuplot.
在提示符下面輸入:
gnuplot> plot [-3.14:3.14] sin(x)
然後就可以看到結果.
上面有橫軸有縱軸,還有圖例.
如果你不需要上面的圖例,你可以在運行:
gnuplot> unset key
如果要還原
gnuplot> set key default
然後再運行上面的繪圖命令就可以實現沒有圖例或者恢復圖例的效果了
一般情況下使用gnuplot都是科學繪圖,因此很多都是放在文章裡面。一般優秀的科技文獻都是用latex來編寫的,所以gnuplot提供了直接輸出 tex檔案的功能,只需要把output設定為latex就可以了。下面來看一個例子,就把上面的正弦曲線插入到你的文章中。在命令行下輸入:
gnuplot> set terminal latex
set output "sin.tex"
plot [-3.14:3.14] sin(x)
那么程式自動生成了一個tex檔案,其包含一系列代碼,都是繪圖用的,可以用寫字板打開,裡面都是一些指令,你完全可以忽略掉。你可以把這個檔案直接插入你的文章中,例如
\begin{figure}
\begin{center}
\input{sin.tex}
\end{center}
\end{figure}
以後凡是要生成插入latex的圖片,就可以用上面的辦法實現。
當然前面的圖已經很不錯了,就是稍顯單調,這裡給它加點裝飾,來個x軸和y軸的提示、圖片是說明。這樣才更像一幅論文裡面的圖片。在命令行下輸入以下代碼:
gnuplot> set terminal latex
set output "sinagain.tex"
set size 5/5.,4/3.
set format xy "$%g$"
set title "This is a plot of $y=\\sin(x)$"
set xlabel "This is the $x$ axis"
set ylabel "This is\\the\\$y$ axis"
plot [0:6.28] [0:1] sin(x)
依舊,生成一個tex檔案,安裝前面講的方法把它包含進來。然後編譯成PDF的效果
這裡用到了幾個命令:
set size 設定圖片的大小
set format xy 設定x、y軸文字的格式
set title 設定圖片標題
set xlabel 設定x軸的文字
一般情況下,科技論文的圖片很多都含有好幾個圖線,那么這裡就介紹下如何在一張圖里顯示多張圖片。
先看代碼:
gnuplot> set terminal latex
set output "combine.tex"
set format xy "$%g$"
set title "Combination"
set xlabel "$x$ axis"
set ylabel "$y$ axis"
plot [-3.14:3.14] 0.2*x with points, sin(x) with lines
這裡沒有很特別的地方,只是plot多了一個項目,當要繪製多個圖線的時候需要用逗號來分隔,注意這裡不是中文的逗號,而是西文的逗號。另外with後面的參數是說用什麼線性來繪製。出來的效果看下面的圖:
接下來再對圖片進行加工。一般圖片x軸每個計數單位都是希望能夠控制的,而不是系統自己來決定的,那么可以通過以下的代碼來實現。
看代碼:
gnuplot> set terminal latex
set output "tic.tex"
set format y "$%g$"
set format x "$%.2f$"
set title "This is $\sin(x)$"
set xlabel "This is the $x$ axis"
set ylabel "$\sin(x)$"
set xtics -pi, pi/4
plot [-pi:pi] sin(x)
把生成的tex檔案插入你的latex檔案中,就出現了以下的效果:
還是沒有大變化,就加了一個set xtics這個是設定x的間距,也就是從-pi開始、每隔pi/4出現一次,pi是gnuplot內建的一個變數,所以只要輸入pi,系統知道其含義。
mac安裝
先安裝brew(一款mac下包管理工具,類似apt),已經安裝跳過。
終端輸入brew install gnuplot,系統會自動的下載依賴的包並完成安裝。