Make a gtable created from a ggplot object patchwork compliant
Make a gtable created from a ggplot object patchwork compliant
This function converts a gtable, as produced by ggplot2::ggplotGrob() and makes it ready to be added to a patchwork. In contrast to passing the gtable to wrap_elements(), wrap_ggplot_grob() ensures proper alignment as expected. On the other hand major restructuring of the gtable will result in an object that doesn't work properly with wrap_ggplot_grob().
wrap_ggplot_grob(x)
Arguments
x: A gtable as produced by ggplot2::ggplotGrob()
Returns
A table_patch object to be added to a patchwork
Examples
library(grid)library(gtable)library(ggplot2)p1 <- ggplot(mtcars)+ geom_point(aes(mpg, disp))+ ggtitle('disp and mpg seems connected')p2 <- ggplot(mtcars)+ geom_boxplot(aes(gear, disp, group = gear))# Convert p2 so we can add new stuff to itp2_table <- ggplotGrob(p2)stamp <- textGrob('TOP SECRET', rot =35, gp = gpar(fontsize =72, fontface ='bold'))p2_table <- gtable_add_grob(p2_table, stamp, t =1, l =1, b = nrow(p2_table), r = ncol(p2_table))# Adding it directly will loose alignmentp1 + p2_table
# Use wrap_ggplot_grob to keep alignmentp1 + wrap_ggplot_grob(p2_table)