1

我有一个栅格,我想在图像图中用特定颜色绘制超出界限的颜色。我到目前为止的代码

## read the libraries
library(raster)
library(fields)
library(grDevices)


##random raster object
set.seed(1)
r <- raster(ncol=5, nrow=5)
r[] <- rnorm(n=ncell(r),mean=2)

par(mfrow=c(2,1))
col = colorRampPalette(c("darkred","red","lightskyblue","blue","blue4"))(20)
##plot without any z limit
image(r, xaxs="i", yaxs="i", col= rev(col))
##plot with z limit
image(r, xaxs="i", yaxs="i", col= rev(col),zlim = c(min(r@data@values),2))

看起来像这样

在此处输入图像描述

第一个图是没有指定任何限制的正常图像图,第二个图有一些限制条件。我想用调色板的第一种颜色(“深红色”)在我的第二个图中更改白色(超出界限值,即光栅值高于 2)。

谢谢。

4

1 回答 1

0

您可以使用自定义中断image功能来设置最高显示颜色组的范围。

set.seed(1)
r <- raster(ncol=5, nrow=5)
r[] <- rnorm(n=ncell(r),mean=2)
par(mfrow=c(2,1))
col = colorRampPalette(c("darkred","red","lightskyblue","blue","blue4"))(20)
col = rev(col)

image(r, xaxs="i", yaxs="i", col = col, main="Initial")

breaks = seq(r@data@min, r@data@max, length.out=21)    
col[which(breaks[1:20] >= 2)] = col[20]
image(r, xaxs="i", yaxs="i", col = col, breaks=breaks, main="Z-Limit")
于 2018-08-16T14:03:09.820 回答