Использование ggplot2 в качестве функции в качестве базовой карты для добавления растров на - PullRequest
0 голосов
/ 15 апреля 2020

Я хочу создать функцию, в которой базовая карта создается с помощью 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

Любой совет, как это сделать?

Ниже приведена базовая карта, а под ней - пример растра, на который я хотел бы наложить его.

Basemap Raster

...