2016-04-25 82 views
1

使用levelplot/spplot我们可以使用at定义颜色区域范围(最小,最大,间隔)。我的问题是:如何使用红色的值大于29.5?如何设置步进颜色区域?

这是我的样本NCDF文件 - >download here

library (raster) 
r <- brick('bali.nc', varname='TEMPERATURE', level=1) 

library(rasterVis) 
jet <- colorRampPalette(
    c('#00007F', 'blue', '#007FFF', 'cyan', 'yellow', '#FF7F00', 'red', '#7F0000') 
) 

# First Figure - without at 
levelplot(r, layer=1, margin=F, contour=F, col.regions=jet) 

# Second Figure - with at 
levelplot(r, layer=1, margin=F, contour=F, col.regions=jet, at=seq(27.5, 29.5, 0.1)) 

Figure A Figure B

回答

1

你必须包括在中断值的向量的最大值,并相应地确定调色板:

rMax <- cellStats(r, max) 
myAt <- c(seq(27.5, 29.5, 0.1), rMax[1]) 
myPal <- jet(length(myAt) - 1) 

levelplot(r, layer = 1, margin = FALSE, 
      at = myAt, 
      par.settings = rasterTheme(myPal)) 

levelplot