用特定颜色绘制 R 中光栅堆栈的最大值

Plotting the maximum of a raster stack in R with specific colours

我有一个由 5 个栅格组成的栅格堆栈(在 s 中发明了示例),我想从这个堆栈中绘制两个最大值和最小值的图 - 使用 max/min (a) 相当简单.

 r <- raster(nrows=10,ncols=100)
 r[] <- rnorm(1000)
 s <- stack(r,r,r,r,r) 
 a<-max(s, na.rm=T)
 plot(a)   

但是,我想要做的是绘制但应用特定于光栅的颜色。因此,例如,如果一个单元格中的最大值来自堆栈中的栅格 3,则图中的该单元格将被着色为红色,在下一个单元格中,最大值来自栅格 5 那么它将是绿色等......是否有无论如何将栅格特定颜色应用于这样的栅格堆栈图?

我敢肯定这很简单,但我在兜圈子。如果有人有任何想法,我将不胜感激。

您应该使用 which.max 而不是 max 来获取每个像素的最大图层(请注意,我必须更改您的示例数据,因为您生成的堆栈具有相同的栅格):

r1 <- raster(nrows=10,ncols=100, vals =rnorm(1000))
r2 <- raster(nrows=10,ncols=100, vals =rnorm(1000))
r3 <- raster(nrows=10,ncols=100, vals =rnorm(1000))
r4 <- raster(nrows=10,ncols=100, vals =rnorm(1000))
r5 <- raster(nrows=10,ncols=100, vals =rnorm(1000))
s <- stack(r1,r2,r3,r4,r5) 
wheremax<-which.max(s)
plot(a)

要获得您想要的颜色,您只需在绘制 wheremax

时指定合适的颜色 table