我在堆栈中有三个栅格。我想使用sp包在具有三列和三行的同一图中绘制它们。我通过使用以下代码实现了这一点
STEP-1
library(raster)
library(rgdal)
library(sp)
library(rworldmap)
##raster object
r <- raster(ncol=40, nrow=20)
r[] <- rnorm(n=ncell(r))
# Create a RasterStack object with 3 layers
s <- stack(x=c(r, r*2, r**2))
##coordinate system
wgs<-CRS("+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs")
w <- spTransform(getMap(), wgs)
##reading the additional shape files
poly <- list(list("sp.lines", as(w, 'SpatialLines'), lwd = 0.5,col="black"))
##plotting with spplot
p1=plot(spplot(s,layout=c(3,1),sp.layout=poly,
colorkey =list(space = "right"),
names.attr = c("a","b","c"),contour = F))
plot(p1)
现在,我想在第一个绘图面板上绘制轮廓。我发现trellis.focus()
包中有lattice
个函数。我想在第一个图的顶部绘制火山轮廓数据。
STEP-2
datasets::volcano
r= raster(volcano)
extent(r)<-c(-180,180,-90,90)
trellis.focus("panel", column=1, row=1, clip.off=F, highlight=T)
plot(contour(r))
trellis.unfocus()
但是,我收到此错误“ plot.window(...)中的错误:需要有限的'xlim'值”
所以,然后我尝试将xlim和ylim设置为
STEP-3
trellis.focus("panel", column=1, row=1, clip.off=F, highlight=T)
plot.window(contour(r),xlim=c(-180,180),ylim=c(-90,90))
trellis.unfocus()
然后我得到另一个错误“ plot.window(contour(r),xlim = c(-180,180),ylim = c(-90,90))中的错误:“ log =“规范必须为字符”
有人可以帮我解决这个问题吗?