Я пытаюсь объединить два графических объекта (grob
) в один график - один из них создан с помощью вызова "standard ggplot()
", другой - с помощью grid.draw()
на объекте ggplot_gtable
()основан на этой теме ).
library(ggplot2)
library(grid)
library(gridExtra)
plot_gtable <- function(x) {
grid::grid.draw(ggplot_gtable(ggplot_build(x)))
}
plot1 <- ggplot(mtcars, aes(mpg, wt)) + geom_point()
plot2 <- plot_gtable(ggplot(mtcars, aes(mpg)) + geom_dotplot())
grid.arrange(plot1, plot2)
Ошибка в gList (структура (список (wrapvp = структура (список (x = структура (0.5, класс = "единица"), valid.unit= 0L, unit = "npc"),: в "gList" разрешены только 'grobs'
Создано в 2018-12-12 пакетом Представить (v0.2.1)
Очевидно, что вызов grid.draw
приводит к NULL
объекту, а не grob
, что, по-видимому, и является причиной сбоя grid.arrange()
в этом случае.
Сначала я попробовал с grid::grid.newpage
и без него.
Я пытался использовать grid::viewport
и gridExtra::arrangeGrob
и ggpubr::ggarrange
и cowplot::plot_grid
, а также пакет patchwork
, но все безрезультатно.
Как создать комбинированный график с этими объектами?