问题描述
我正在尝试将 test1(用 tmap 制作的地图)与 test2(用 ggplot2 制作的图,使用 cowplot::plot_grid)结合起来。
library(ggplot2)
library(tmap)
library(cowplot)
library(ggplotify)
test2 <-ggplot(iris,aes(Sepal.Length,Sepal.Width,color = Species)) + geom_point()
data("World")
test1 <- tm_shape(World) + tm_polygons("HPI")
plot_grid(test1,test2)
tmap 似乎与 cowplot 不兼容:
"在 as_grob.default(plot) 中: 无法将 tmap 类的对象转换为 grob"
使用时同样的问题
tmap::tmap_arrange(test1,test2)
"tmap_arrange(test1,test2) 中的错误: 并非所有参数都是 tmap 对象“
我还尝试使用 ggplotify 中的“as.grob”等函数转换 tmap,
test3 <- as.grob(test1)
但没有运气 “使用方法错误(“as.grob”): 没有适用于“as.grob”的方法应用于“tmap”类的对象“
有什么建议吗?
谢谢!
解决方法
是的,我最近添加了 tmap_grob
来完成这项工作。
library(ggplot2)
library(tmap)
library(cowplot)
library(ggplotify)
test2 <-ggplot(iris,aes(Sepal.Length,Sepal.Width,color = Species)) + geom_point()
data("World")
tm <- tm_shape(World) + tm_polygons("HPI")
test1 <- tmap_grob(tm)
plot_grid(test1,test2)