这是一个古老的帖子,但这是一个很好的问题,所以我会给它一个答案。
我将举例说明如何rasterVis::levelplot
使用 . 附带的 3 通道 R 徽标光栅数据来完成此操作raster
。
library(rasterVis)
b <- brick(system.file("external/rlogo.grd", package="raster"))
使用 levelplot 绘制三通道 RGB 栅格
raster
创建一个与砖具有相同尺寸和范围的空。
r <- raster(b)
计算对应 RGB 通道值的十六进制颜色,并强制转换为factor
.
cols <- factor(rgb(b[], maxColorValue=255))
将这些因子值分配给栅格像元。
r[] <- cols
用 绘制levelplot
,从 的级别中提取十六进制颜色cols
并将它们传递给col.regions
。
levelplot(r, col.regions=as.character(levels(cols)), colorkey=FALSE)
添加指北针和比例尺
对于指北针和比例尺,我们将查看@OscarPerpiñán 的文档。
levelplot(r, col.regions=as.character(levels(cols)), colorkey=FALSE) +
layer(SpatialPolygonsRescale(layout.north.arrow(), offset = c(5, 10), scale = 10)) +
layer({
xs <- seq(5, 25, by=5)
grid.rect(x=xs, y=5,
width=5, height=2,
gp=gpar(fill=rep(c('transparent', 'black'), 2)),
default.units='native')
grid.text(x=xs-2.5, y=8, seq(0, 400, by=100),
gp=gpar(cex=0.7),
default.units='native')
})
grid.text
我将由您来计算与矩形的宽度(以地图单位为单位)相关的真实距离(传递给)。