【发布时间】:2016-12-20 07:36:33
【问题描述】:
我有一组来自 RasterStack 的八张地图,并希望在绘图中添加一个 100 公里的比例尺。我在spplot 函数中使用sp.layout 在栅格顶部添加SpatialLines 对象,并假设比例尺(或指北针)也可以这样做,但我什么也做不了。
我使用的代码是:
library(sp)
library(raster)
library(grid)
spplot(rasterstack, layout=c(2,4),
names.attr=c("a", "b", "c", "d", "e", "f", "g", "h"),
between=list(x=1, y=1),
at=seq(0,1000,by=100),
col.regions=colorRampPalette(c("grey90","yellow4","green4"))(100),
par.strip.text=list(cex=2.5),
scales=list(draw=F),
colorkey=list(labels=list(labels=seq(0,1,by=0.25),
at=seq(0,1000,by=250),
width=10, cex=2.5)),
sp.layout=list(list(country, first=FALSE), # add country borders
list(spatiallines, lwd=1.5, col=4)))
# Label vertical colorkey
grid::grid.text('Probability of occurrence', y=unit(0.5,"npc"), x=unit(0.95,"npc"), rot=90, gp=gpar(cex=3, font=2))
其中rasterstack是一个8层的RasterStack,每个单元格的取值范围是0到1000,country和spatiallines是SpatialLines*对象
我遇到了各种添加比例尺的功能,例如layout.scale.bar()、maps::map.scale() 和 scalebar(),但我不知道如何将它们合并到我正在使用的 spplot 代码中。我尝试将它们作为参数添加到 spplot 中或作为列表添加到 sp.layout=list() 参数中,但都不起作用。
谢谢!
【问题讨论】: