R 使用spplot在一页中打印多个形状文件

R 使用spplot在一页中打印多个形状文件,r,raster,shapefile,rastervis,R,Raster,Shapefile,Rastervis,这就是我绘制多个光栅的方式 library(raster) x <- raster::getData('worldclim', var='tmin', res = 10) var.list <- c("tmin1","tmin2","tmin3","tmin4") ras.stack <- stack() for(i in var.list){ stack.list <- stack(stack.list, x[[paste0(i)]]) } spplot(s

这就是我绘制多个光栅的方式

library(raster)
x <- raster::getData('worldclim', var='tmin', res = 10)
var.list <- c("tmin1","tmin2","tmin3","tmin4")

ras.stack <- stack()

for(i in var.list){

  stack.list <- stack(stack.list, x[[paste0(i)]])
}

spplot(stack.list)
库(光栅)

x您必须首先将
空间多边形数据帧
转换为光栅对象,才能对其进行堆叠。您还可以根据
光栅::堆栈
手册转换为SpatialGrid*、SpatialPixels*-对象

所以你的第二个代码会变成这样:

library(raster)
fra <- raster::getData('GADM',country = 'FRA', level = 2)
shp.stack <- stack()
for(i in 1:4){
  mean.value <- data.frame(NAME_2  = fra@data$NAME_2, sample(1:200, 96))
  my.shp <- raster::merge(fra, mean.value, by = 'NAME_2')

  r <- raster(ncol=180, nrow=180)
  extent(r) <- extent(my.shp)
  rp <- rasterize(x = my.shp, y = r)

  shp.stack <- raster::stack(shp.stack, rp)
}

plot(shp.stack)
库(光栅)

fra我无法将spplot用于您的第一个示例。使用正常的
plot
可以工作,但我还必须在
stack
函数中将
stack.list
更改为
ras.stack
。否则,我将得到错误
对象“stack.list”未找到
。你为什么只做
x[[paste0(i)]]
而不做
x[[i]]
?你到底想做什么/策划什么?
library(raster)
fra <- raster::getData('GADM',country = 'FRA', level = 2)
shp.stack <- stack()
for(i in 1:4){
  mean.value <- data.frame(NAME_2  = fra@data$NAME_2, sample(1:200, 96))
  my.shp <- raster::merge(fra, mean.value, by = 'NAME_2')

  r <- raster(ncol=180, nrow=180)
  extent(r) <- extent(my.shp)
  rp <- rasterize(x = my.shp, y = r)

  shp.stack <- raster::stack(shp.stack, rp)
}

plot(shp.stack)