2015-02-11 57 views
2

我想在R中使用filled.contour()繪製一個函數f(x,y),並添加一條線/曲線來標識函數值爲0的點 爲了讓這個例子可以重新定價,讓我們假設我的函數的值是火山數據集中的值,而不是尋找f(x,y)= 0,我們想要添加一條線/曲線來確定火山的位置價值500. 我該怎麼做?以下代碼正確地在點X = 500和Y = 500處添加了一個點。但是,如何添加一條線以便只有火山= 500的點通過一條線連接?我只想使用基礎圖形。R:向等值線圖添加一條線

x <- 10*1:nrow(volcano) 
y <- 10*1:ncol(volcano) 
filled.contour(x, y, volcano, color = terrain.colors, plot.axes = { axis(1); axis(2); points(500, 500)}) 
+0

火山數據集沒有超過195的_z_值(參見'range(volcano)')。你想爲特定的z值添加輪廓線嗎? – xraynaud 2015-02-11 16:11:12

+0

是的。所以如果195是最大值,我們假設火山= 130 – mickG 2015-02-11 16:13:52

回答

0

一種解決方案,這是不完美:

#create a new plot 
contour(x,y,volcano) 
#use .filled.colour instead of filled.contour 
.filled.contour(x, y, volcano,levels=seq(90,200,1),col=terrain.colors(109)) 
# add a contour plot with specific levels on top of the filled contour 
contour(x,y,volcano, level=130,add=T) 

可以通過使vectoor該參數水平指定幾個輪廓線:級別= C(130150)將以此爲高度130的輪廓和150

問題是filled.contour廣告傳奇酒吧,所以只需調用filled.contour,然後輪廓使這兩個圖片不匹配(見幫助(filled.contour)中的說明)。

但是,使用此解決方案,您會丟失圖例欄。