具有分类数据的栅格地图的图例

Posted

技术标签:

【中文标题】具有分类数据的栅格地图的图例【英文标题】:Legend of a raster map with categorical data 【发布时间】:2013-10-08 19:14:51 【问题描述】:

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

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

legend( 1,-20,legend = c("land","ocean/lake", "rivers","water bodies"))

但我不知道如何将一个值与显示的颜色相关联。有没有办法检索用“绘图”显示的颜色并在图例中使用它?

【问题讨论】:

交叉发布:gis.stackexchange.com/questions/73143/… 【参考方案1】:

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="")

【讨论】:

【参考方案2】:

默认情况下,光栅图中使用的颜色由rev(terrain.colors()) 生成(参见?raster::plot)。您可以使用它为您的图例重新创建 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)

【讨论】:

以上是关于具有分类数据的栅格地图的图例的主要内容,如果未能解决你的问题,请参考以下文章

ArcGIS教程:Iso 聚类非监督分类

占据栅格地图(Occupancy Grid Map)(与SLAM构图有关)

如何使用 react-leaflet 从 geojson 数据创建图例

GlobalMapper精品教程029:栅格重分类案例详解

arcgis 图例怎么设置

珊格地图笔记