在 ggplot 地图中表示不同的图层! R

Representing different layers in a ggplot map! R

M 的意图是在 ggplot 图中表示 3 个不同的信息层: 1. 地图本身使用 MULTIPOLYGON 文件 2. 使用 geom_tile() 的克里金估计 3. 使用 geom_point()

的数据点

我使用了以下脚本:

library(rnaturalearth)
library(rnaturalearthdata)
world <- ne_countries(scale = "medium", returnclass = "sf")
windows()
ggplot(data = world) +
  geom_sf(color="black",fill="grey90") + 
  theme(panel.background = element_blank()) +
  coord_sf(xlim = c(-12.3, 95), ylim = c(70, 22), expand = FALSE) +
  geom_tile(data = myKrige, aes(x= x1, y= x2, fill =var1.pred)) +
  geom_point(data = roh, aes(x = LON, y = LAT))

在此脚本中,我使用了三个数据集:world(从 rnaturalearthdata 获得的 MULTIPOLYGON)、myKrige(从 spatialPointsDataFrame 获得的数据框)和 roh(具有纬度和经度数据点的数据框)。

这是我的脚本生成的图形:

如您所见,不同的图层彼此重叠。但我想将 geom_tile 与底图很好地合并。

知道我怎样才能轻松做到这一点。还是我应该重新考虑完整的数字?

这里是起点,以 https://rpubs.com/nabilabd/118172

为例
library(rnaturalearth)
library(rnaturalearthdata)
library(ggplot2)
library(sf)

world <- ne_countries(scale = "medium", returnclass = "sf")
df <- data.frame(x=rnorm(10,sd = 3), 
                 y=rnorm(10,sd = 3))
df <- sf::st_as_sf(df, coords=c("x","y"), crs = 4326, agr = "constant", remove = F)
ggplot(data = world) +
  geom_sf() +
  geom_sf(data=df) +
  # The idea would then to add add a scale_fill_gradient() such 
  # as in https://rpubs.com/nabilabd/118172 , but I dont know
  # how the kring data should look like. 
  coord_sf(xlim = c(-10,10), ylim=c(-10,10))

# example
lzn.kriged %>% as.data.frame %>%
  ggplot(aes(x=x, y=y)) + geom_tile(aes(fill=var1.pred)) + coord_equal() +
  scale_fill_gradient(low = "yellow", high="red") +
  scale_x_continuous(labels=comma) + scale_y_continuous(labels=comma) +
  theme_bw()