1

levelplot/spplot我们可以at用来定义颜色区域范围(min、max、interval)。我的问题是:如何将红色用于大于 29.5 的值?

这是我的示例 NCDF 文件 -->在此处下载

 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))

图A 图B

4

1 回答 1

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))

水平图

于 2016-04-26T16:49:34.913 回答