【问题标题】:Plotting the maximum of a raster stack in R with specific colours用特定颜色在 R 中绘制栅格堆栈的最大值
【发布时间】:2017-07-17 09:15:04
【问题描述】:

我有一个包含 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,那么这将是绿色等等......无论如何将光栅特定颜色应用于这样的光栅堆栈图?

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

【问题讨论】:

  • 有什么办法可以将其设为reproducible question?笼统地说有点困难。
  • 感谢 r2evans,插入了通用示例。

标签: r plot colors raster r-raster


【解决方案1】:

您应该使用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 时指定一个适当的颜色表

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-05-15
    • 2017-12-17
    • 1970-01-01
    • 1970-01-01
    • 2017-09-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多