私は、RasterStackからの8つのマップからなるパネルを持っており、プロットに100kmスケールバーを追加したいと考えています。私はspplot
関数内でsp.layout
を使用して、SpatialLinesオブジェクトをラスタの上に追加し、スケールバー(または北矢印)で同じことが可能であると仮定しましたが、何もできません。spplotの1つのパネルに尺度バーを追加する方法
私が使用しているコードは:
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()
引数の中のリストとしてそれらを追加しようとしましたが、いずれも動作しません。
ありがとうございます!