在 R 中为特定值绘制具有特定颜色的栅格

Plotting a raster in R with specific colors for specific values

我有一个包含 10 个值的栅格:

vals <- c(1,2,3,4,5,12,123,1234,12345,23,234,2345,34,345,45)

我想制作一个图,其中值 1 到 5 是彩色的。所有其他值都是灰度。另外,我希望图例能够具体显示每个值和相应的颜色。在 ArcGIS 中,这很容易实现(查看预期结果)

我尝试了很多,但我想不出一个解决方案来获得一个好的结果。谁能帮忙?

光栅可以在这里找到:https://www.dropbox.com/s/kzcba9r4t9z4mc1/raster.tif?dl=0

编辑:

事实证明,基本绘图对于分类数据有点烦人。我确定有办法,但既然有高速公路,为什么还要走崎岖的道路呢。

伟大的包 rasterVis 可以很容易地绘制分类栅格......以及与此相关的更多东西。查看 homepage 了解所有功能。

回到你的问题:

library(raster)
library(rasterVis)

#load raster
r <- raster('raster.tif')

#define color palette
cpal <- c('darkred','orange','green','dodgerblue','navy',grey.colors(8,start = 0.4,end=0))

#make categorical
r2 <- ratify(r)

#plot
levelplot(r2,col.regions=cpal,att='ID')

结果: