patchworkについて

group_nest して mapggplot を作ったあと、そのfigsをまとめて1つのfigにしたいときがある。 そういうときに patchwork::wrap_plots が便利。

例えばこんなコード。

pacman::p_load(tidyverse)

d_plot <- iris %>% 
  group_nest(Species) %>% 
  mutate(
    figure = map(
      .x = data,
      .f = ~ {
        ggplot(data = .x) + 
          geom_point(aes(x = Sepal.Length, y = Sepal.Width))
      }
    )
  )

patchwork::wrap_plots(d_plot$figure)

あとは wrap_plots の使い方としては、例えばenvironmentのなかに plot_{hoge} みたいなggplotオブジェクトがあって、それらを一括で呼び出して、 wrap_plots したいときは 

patchwork::wrap_plots(
    map(
      .x = str_subset(ls(), '^plot_.*'), 
      .f = ~ get(.x)
    )
  )

という書き方も使える。

nested dataでggplot - Qiita