结合 tmap 和 ggplot

问题描述

我正在尝试将 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)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...