在 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')
结果:
我有一个包含 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')
结果: