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

时间:2017-02-26 21:00:02

标签: r plot colors raster r-raster

我有一个由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,然后是绿色等...是否存在无论如何将栅格特定颜色应用于这样的栅格堆栈图?

我确信这很简单,但我会绕圈子走。如果有人有任何想法,我将非常感激。

1 个答案:

答案 0 :(得分:1)

您应该使用which.max代替max来获取每个像素的最大值(注意我必须更改您的exmple数据,因为您生成的堆栈具有相同的栅格):

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

时指定正确的颜色表