2014-09-13 92 views
1

我需要等高線圖3不同的功能與gnuplot的,但對他們的2,我需要的只是輪廓級別0,對於其他的,我需要的水平10,12和14這是我得到迄今:如何使用不同的線級別的不同功能

f(x,y) = 10 + x + y 
g1(x, y) = 5 - x - 2*y 
g2(x, y) = (1/x) + (1/y) - 2 
set contour base 
set isosample 250, 250 
set cntrparam cubicspline 
unset surface 
set size square 
set view map 
set yrange[-1:5] 
set xrange[-1:5] 

set cntrparam levels discrete 0 
splot f(x,y), g2(x,y), g1(x,y) 

plot

的問題是,我可以使用:

set cntrparam levels discrete 0 

set cntrparam levels discrete 10, 12, 14 

的所有功能,但我不知道如何使用前者爲g1(x,y)只有g2(x,y),同時採用了更高版本的f(x,y)。怎麼做?

回答

1

一般來說,你不能爲不同的功能將被繪製在一起定義不同的輪廓設置。在你的情況下,有一個解決方法,因爲輪廓水平彼此很好地分開。您必須將您的功能定義爲1/0,其中不需要的級別是。在這裏,我選擇5作爲限制,這是在中間:

f(x,y) = 10 + x + y 
g1(x, y) = 5 - x - 2*y 
g2(x, y) = (1/x) + (1/y) - 2 
set contour base 
set isosample 250, 250 
set cntrparam cubicspline 
unset surface 
set size square 
set view map 
set yrange[-1:5] 
set xrange[-1:5] 

set cntrparam levels discrete 0, 10, 12, 14 

splot (f(x,y) > 5 ? f(x,y) : 1/0) t 'f(x,y)', \ 
     (g2(x,y) < 5 ? g2(x,y) : 1/0) t 'g2(x,y)', \ 
     (g1(x,y) < 5 ? g1(x,y) : 1/0) t 'g1(x,y)' 

與4.6.5結果是:

enter image description here

相關問題