Я хочу создать функцию, в которой базовая карта создается с помощью ggplot. Позже я хочу, чтобы эта карта использовалась в качестве базовой карты для построения других пространственных данных, в основном растровых данных.
Я создаю базовую карту следующим образом:
basemap <- function(){
return(ggplot(data = world) +
geom_sf(size = 1, colour = "black") +
coord_sf(xlim = c(-10, 28), ylim = c(35, 70)) +
xlab("Longitude") + ylab("Latitude") +
annotation_scale(location = "br", width_hint = 0.3) +
annotation_north_arrow(location = "tl", which_north = "true",
pad_x = unit(0.1, "in"), pad_y = unit(0.1, "in"),
style = north_arrow_fancy_orienteering)
)
}
И с помощью geom_raster я отображаю значения кадра данных как растр:
plot <- ggplot(ascplot, aes(x=longitude, y=latitude, fill = as.numeric(ascplot$"o3_col3(ppb)"))) +
geom_raster() +
scale_fill_gradientn(colours=rainbow(10)) +
labs(fill = "O3 column ")
Однако я понятия не имею, как сделать возможным добавление этих значений поверх базовой карты. Я хочу создать базовую карту, потому что я собираюсь построить много растров, и этот способ гарантирует, что основная информация остается неизменной.
Я попытался создать базовую карту, а затем поместить ее в переменную, чтобы позже добавить растр, но это невозможно, так как выдает ошибку:
Error: Don't know how to add plot to a plot
Любой совет, как это сделать?
Ниже приведена базовая карта, а под ней - пример растра, на который я хотел бы наложить его.