andschar
andschar

Reputation: 3973

Combine multiple patchworks

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

Upvotes: 4

Views: 824

Answers (1)

Stephan
Stephan

Reputation: 2246

You need to use | :

gg1 | gg2 

Output is:

enter image description here

Upvotes: 6

Related Questions