用特定颜色绘制 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
我有一个由 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