recordPlot
- правильный путь, только он сохраняет текущий график (см. ?recordPlot
) в переменной.Я создал этот воспроизводимый пример :
library(raster)
map <- raster(system.file("external/test.grd", package="raster"))
yellowbirds <- SpatialPoints(
coords = structure(c(179025.023681718, 179606.015156299, 179878.354910009,
180441.19040101, 180913.245974108, 330055.067887591, 330508.967477108,
331398.610672561, 331743.574360594, 332342.721818756),
.Dim = c(5L, 2L), .Dimnames = list(NULL, c("x", "y"))))
plot(map)
map1 <- recordPlot()
plot(yellowbirds, add = TRUE)
overlay_map <- recordPlot()
Теперь мы убиваем текущие устройства и воспроизводим два сюжета:
dev.off()
map1
dev.off()
overlay_map
И map
, и overlay_map
должны быть воссозданы на пустом устройстве.Даже если вы rm(map1)
, overlay_map
будете строить правильно.
ПРИМЕЧАНИЕ: Не звоните plot(overlay_map)
, так как это приводит к следующей ошибке
Error in xy.coords(x, y, xlabel, ylabel, log) :
'x' is a list, but does not have components 'x' and 'y'