使用 map 和 scatter 创建多图
Create multiplot with map and scatter
我正在尝试创建包含彼此相邻的地图(使用 geom_sf
)和图表的多图。
我尝试使用 GGpubr::ggarrange
和 cowplot::plot_grid
来达到这个目的。但是我收到这个警告:
1: In as_grob.default(plot) :
Cannot convert object of class tbl_dftbldata.frame into a grob.
结果没有显示地图。
有谁知道有什么软件包可以帮助我解决这个问题吗?用于代替 GGpubr
或 cowplot
?
的软件包
使用{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
我正在尝试创建包含彼此相邻的地图(使用 geom_sf
)和图表的多图。
我尝试使用 GGpubr::ggarrange
和 cowplot::plot_grid
来达到这个目的。但是我收到这个警告:
1: In as_grob.default(plot) :
Cannot convert object of class tbl_dftbldata.frame into a grob.
结果没有显示地图。
有谁知道有什么软件包可以帮助我解决这个问题吗?用于代替 GGpubr
或 cowplot
?
使用{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