R 带有分类数据的光栅地图图例

R 带有分类数据的光栅地图图例,r,map,legend,raster,categorical-data,R,Map,Legend,Raster,Categorical Data,我想绘制一个包含4个不同值()的光栅,并用分类文字图例描述类别,例如但带有颜色框: 我尝试过使用图例,例如: legend( 1,-20,legend = c("land","ocean/lake", "rivers","water bodies")) 但我不知道如何将一个值与显示的颜色相关联。是否有方法检索“绘图”显示的颜色并在图例中使用 默认情况下,光栅打印中使用的颜色由rev(terrain.colors())生成(请参见?光栅::打印)。您可以使用此选项为您的图例重新创建4种颜色的序

我想绘制一个包含4个不同值()的光栅,并用分类文字图例描述类别,例如但带有颜色框:

我尝试过使用图例,例如:

legend( 1,-20,legend = c("land","ocean/lake", "rivers","water bodies"))
但我不知道如何将一个值与显示的颜色相关联。是否有方法检索“绘图”显示的颜色并在图例中使用


默认情况下,光栅打印中使用的颜色由
rev(terrain.colors())
生成(请参见
?光栅::打印
)。您可以使用此选项为您的图例重新创建4种颜色的序列-或选择随机的颜色序列:

my_col = rev(terrain.colors(n = 4))
# my_col = c('beige','red','green','blue')
首先使用颜色顺序绘制地图
legend=FALSE
去掉标准色条:

plot(my_raster, legend = FALSE, col = my_col)
在左下角添加自定义图例。使用
fill
参数生成彩色框:

legend(x='bottomleft', legend = c("land", "ocean/lake", "rivers", "water bodies"), fill = my_col)

rasterVis软件包包括用于
levelplot()
Raster
方法,该方法绘制分类变量并生成适当的图例:

library(raster)
library(rasterVis)

## Example data
r <- raster(ncol=4, nrow=2)
r[] <- sample(1:4, size=ncell(r), replace=TRUE)
r <- as.factor(r)

## Add a landcover column to the Raster Attribute Table
rat <- levels(r)[[1]]
rat[["landcover"]] <- c("land","ocean/lake", "rivers","water bodies")
levels(r) <- rat

## Plot
levelplot(r, col.regions=rev(terrain.colors(4)), xlab="", ylab="")
库(光栅)
图书馆(拉斯特维斯)
##示例数据
r交叉张贴: