使用 map 和 scatter 创建多图

Create multiplot with map and scatter

我正在尝试创建包含彼此相邻的地图(使用 geom_sf)和图表的多图。

我尝试使用 GGpubr::ggarrangecowplot::plot_grid 来达到这个目的。但是我收到这个警告:

1: In as_grob.default(plot) :
  Cannot convert object of class tbl_dftbldata.frame into a grob.

结果没有显示地图。

有谁知道有什么软件包可以帮助我解决这个问题吗?用于代替 GGpubrcowplot?

的软件包

使用{patchwork}

library(sf)
library(ggplot2)
library(patchwork)
library(maps)

# usa polygon in lamert equal area b/c it's pretty
usa <- st_as_sf(map("usa", plot = FALSE, fill = TRUE)) |> 
  st_transform(st_crs("+proj=laea +lat_0=30 +lon_0=-95"))

# plot 1: geom_sf map of the us
p1 <- ggplot() +
  geom_sf(data = usa)

# plot 2: geom_line ggplot
p2 <- ggplot(diamonds, aes(carat, price)) +
  geom_point(alpha = 0.2) +
  geom_smooth()

# use pathwork to combine plots
p1 + p2