Home > Software engineering >  Combine multiple patchworks
Combine multiple patchworks

Time:05-02

I would like to combine multiple plots created by patchwork in another patchwork, i.e. nested patchwork plots.

Dummy plots

# packages
require(ggplot2)
require(patchwork)

# plots
gg_hist = ggplot(iris)  
  geom_histogram(aes(x = Sepal.Length), color = 'white')  
  theme_void()
gg_plot = ggplot(iris)  
  geom_point(aes(y = Sepal.Length, x = Sepal.Width))

# patchwork 1
gg1 = gg2 = gg_hist  
  gg_plot  
  plot_layout(heights = c(1,5))

I would like to combine gg1 & gg2 with the patchwork package to lie next to each other, like in cowplot::plot_grid(gg1, gg2). However they are arranged wrongly. It looks like a bug. Can anyone help?

BUG?

# patchwork 2
Reduce(' ', list(gg1, gg2))
gg1   gg2

WORKS:

# cowplot
cowplot::plot_grid(gg1, gg2)

Package versions: cowplot_1.1.1 patchwork_1.1.1 ggplot2_3.3.5

CodePudding user response:

You need to use | :

gg1 | gg2 

Output is:

enter image description here

  • Related