2014-05-05 64 views
1

使用包裝marmap時,海平面以上的地形和海平面以下的地形可以使用單獨的調色板嗎?我想用一個綠色的調色板來顯示島上的山脈,然後顯示海底的藍色。在這個例子中,我使用了大西洋數據集,它在圖的左上角有一些土地地形數據。marmap分離調色板,用於海拔高度的地形

library(marmap) 

##load some data 
data(nw.atlantic) 
atl <- as.bathy(nw.atlantic) 

##create two palettes, one for above sea level (greens), one for below (blues) 
blues <- colorRampPalette(c("purple", "darkblue", "blue", "cadetblue1", 
          "lightblue")) 
greens <- colorRampPalette(c("#00CC00", "#33CC33", "#009900", "#006633")) 

##plot the bathymetry, some land topography is seen in the top left corner 
plot.bathy(atl, land=T, image=T, bpal=blues(100), n=50) 

##try setting the palettes by deep and shallow... no luck 
plot.bathy(atl, land=T, image=T, bpal=c(blues(100), greens(100)), 
      deep=c(0, -7000), shallow=c(0, 2000), n=50) 
+1

也許如果您提供「休息」例如:'plot.bathy(atl,land = T,image = T,bpal = c(blues(63),greens(10)),n = 10,break = c(seq(-6228,0,100) ,seq(0,1007,100)))'。 (請注意''plot.bathy'中可以傳遞'image'接受的參數 - 請參閱'?image'。) – jbaums

+1

r#56000!祝賀詹姆斯 – rawr

+0

謝謝,這工作正常jbaums。只需要稍微調整休息時間,因爲實際數據集具有不同範圍的測深/地形。 –

回答

0

隨着marmap V0.8(上CRAN可用自6月),plot.bathy的BPAL參數現在接受向量的列表,用於深度/高度切片和顏色名稱/代碼各自含有邊界。請參閱plot.bathy()的最後一個示例,該示例完全符合您的需求。使用您的自定義調色板,您只需鍵入:

plot(atl, land = TRUE, n = 50, lwd = 0.1, image = TRUE, 
    bpal = list(c(min(atl), 0, blues(100)), 
       c(0, max(atl), greens(100)))) 

# Add coastline 
plot(atl, deep=0, shallow=0, step=0, add=TRUE, lwd=.7)