2015-06-02 75 views
0

希望是一個簡單的問題,但我使用filled.contour()在R中做了一個簡單的數字。它看起來很好,而且它給出的數據應該是什麼樣子。但是,我想爲0(水平= 0)的輪廓添加參考線,並且繪製的線與填充的.contour圖上的顏色不匹配。該線很接近,但與該圖不匹配(並最終從填充的.contour圖中穿過另一個輪廓)。任何想法爲什麼發生這種情況?R輪廓水平不匹配filled.contour

aa <- c(0.05843150, 0.11300040, 0.15280030, 0.183524400, 0.20772430, 0.228121000) 
bb <- c(0.01561055, 0.06520635, 0.10196237, 0.130127650, 0.15314544, 0.172292410) 
cc <- c(-0.02166599, 0.02306650, 0.05619421, 0.082193680, 0.10334837, 0.121156780) 
dd <- c(-0.05356592, -0.01432910, 0.01546647, 0.039156660, 0.05858709, 0.074953650) 
ee <- c(-0.08071987, -0.04654243, -0.02011676, 0.000977798, 0.01855881, 0.033651089) 
ff <- c(-0.10343798, -0.07416114, -0.05111547, -0.032481132, -0.01683215, -0.003636035) 
gg <- c(-0.12237798, -0.09753544, -0.07785126, -0.061607548, -0.04788856, -0.036169540) 

hh <-rbind(aa,bb,cc,dd,ee,ff,gg) 

z <- as.matrix(hh) 
y <- seq(0.5,1.75,0.25) 
x <- seq(1,2.5,0.25) 

filled.contour(x,y,z, 
      key.title = title(main=expression("log"(lambda))), 
      color.palette = topo.colors) #This works 

contour(x,y,z, level=0,add=T,lwd=3) #This line doesn't match plot 
+2

你真的應該包括[重複的例子(http://stackoverflow.com/questions/5963269/how -to-化妝一個偉大-R重現-例子)。包括樣本輸入數據和迄今爲止嘗試使用的代碼。 – MrFlick

+0

@MrFlick對不起 - 我認爲沒有代碼就很簡單。我在上面添加了一些。 –

回答

0

這完全在?filled.contour幫助頁面中得到解答。在註釋部分它聲明

由filled.contour生成的輸出實際上是兩個圖的組合;一個是充滿輪廓的,一個是傳奇。這兩個座標系設置了兩個獨立的座標系,但它們只用於內部 - 一旦函數返回,這些座標系就會丟失。如果要標註主輪廓圖,例如添加點,則可以在plot.axes參數中指定圖形命令。看例子。

該幫助頁面中給出的示例顯示瞭如何在主圖上進行註釋。在這種特殊情況下,正確的方法是

filled.contour(x,y,z, 
    key.title = title(main=expression("log"(lambda))), 
    color.palette = topo.colors, 
    plot.axes = { 
     axis(1) 
     axis(2) 
     contour(x,y,z, level=0,add=T,lwd=3)    
    } 
) 

產生

enter image description here

+0

謝謝。我讀了筆記部分,發現它與使用兩個繪圖/座標的事實有關,但我無法讓我的例子工作。謝謝。 –