每周一薦:用gnuplot繪制函數曲線


喜歡數學的人,都說數學公式是世界上最簡潔而深刻的詩,數學曲線是世界上最美的圖畫。本周給大家推薦一個開源的函數曲線繪制工具:gnuplot。別小看這個工具,年齡和我一般大,gnuplot 是在 1986 年由 Colin Kelley 和 Thomas Williams 最初開發的。許多參與者都在為不同的“終端”創建變種方面做出了貢獻。在 1989 和 1990 年,這些變種被合並到 gnuplot 2.0 中。2004 年 4 月,發布了 4.0 版本。前綴gnu千萬不要誤解和Linux世界的GNU有關系,只是一個巧合,gnuplot被開發出來的時候,GNU不久才誕生。

 

Gnuplot 是一種免費分發的繪圖工具,可以移植到各種主流平台。它可以下列兩種模式之一進行操作:當需要調整和修飾圖表使其正常顯示時,通過在 gnuplot 提示符中發出命令,可以在交互模式下操作該工具。或者,gnuplot 可以從文件中讀取命令,以批處理模式生成圖表。例如,如果您正在運行一系列的實驗,需要每次運行后都查看結果圖表;或者當您在圖表最初生成很久以后需要返回圖表修改某些內容時,批處理模式能力會特別有用。當在 WYSIWIG 編輯器中很難捕獲用於修飾圖表的鼠標單擊事件時,您可以很容易地將 gnuplot 命令保存在文件中,六個月后將其加載到交互式會話中重新執行。

 

啟動界面:

繪制二維函數曲線:

damp(t) = exp(-s*wn*t)/sqrt(1.0-s*s)
per(t) = sin(wn*sqrt(1.0-s**2)*t - atan(-sqrt(1.0-s**2)/s))
c(t) = 1-damp(t)*per(t)
 
wn = 1.0
set xrange [0:13]
set samples 50
set dummy t
set key box
 
plot s=.1,c(t),s=.3,c(t),s=.5,c(t),s=.7,c(t),s=.9,c(t),s=1.0,c(t),s=1.5,c(t),s=2.0,c(t)

 

繪制三維曲面:

set samples 20
set isosamples 20
set view 60,30
set xrange [-3:3]
set yrange [-3:3]
set zrange [-1:1]
set ztics -1,0.5,1
set grid z
set border 4095
splot sin(x) * cos(y)

 

繪制直方圖:

set title "A demonstration of boxes in mono with style fill pattern"
set samples 11
set boxwidth 0.5 
set style fill pattern border
plot [-2.5:4.5] 100/(1.0+x*x) title 'pattern 0' with boxes lt -1, \
                 80/(1.0+x*x) title 'pattern 1' with boxes lt -1, \
                 40/(1.0+x*x) title 'pattern 2' with boxes lt -1, \
                 20/(1.0+x*x) title 'pattern 3' with boxes lt -1

 

上面隨便舉了幾個例子,gnuplot提供了很多函數曲線顯示控制的命令。能繪制的曲線有兩種:1> 數學函數;2> 數據文件。gnuplot用於數據可視化是個不錯的選擇。小巧但功能強大,推薦給喜歡數學的同學。

 

更多資料:

 

2012/05/17 21:30 於上海


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM