R プロットや画像の複数表示

プロットや画像の複数表示に便利です「multipanelfigure」パッケージ

#パッケージのインストール
install.packages("multipanelfigure")

#パッケージの読み込み
library("multipanelfigure")
 
###データ例の作成#####
n <- 500
TestData <- data.frame("Group" = sample(paste0("Group", 1:3), n, replace = TRUE),
                          "Data" = rnorm(n))
########
 
###プロット例の作成#####
library("ggplot2")
BoxPlot <- function(i = rainbow(16)[sample(1:16, 1)])
{
  ggplot(TestData, aes(x = Group, y = Data)) +
    geom_boxplot(fill = i)
}
########
 
#プロット区分を設定:multi_panel_figureコマンド
#各プロット区分の幅:widthオプション
#各プロット区分の高さ:heightオプション
#区分の列数:columnsオプション
#区分の行数:rowsオプション
PlotArea <- multi_panel_figure(width = 150, height = 150,
                                  columns = 3, rows = 3)
#確認
PlotArea
 
#区分へプロット:fill_panelコマンド
#プロット区分変数とfill_panelコマンドを%<>%で繋ぐのがポイント
for(i in 1:9){
   
  PlotArea %<>% fill_panel(panel = BoxPlot())
   
}
#確認
PlotArea
 
###例えばこんな使い方1#####
#プロット区分を設定
PlotArea <- multi_panel_figure(width = 150, height = 150,
                                  columns = 3, rows = 3)
#プロット区分を指定してプロット
#プロット1
PlotArea %<>% fill_panel(panel = BoxPlot(), column = 1:2, row = 1:2)
#プロット2
PlotArea %<>% fill_panel(panel = BoxPlot(), column = 3, row = 1:2)
#プロット3-5
PlotArea %<>% fill_panel(panel = BoxPlot(), column = 1, row = 3)
PlotArea %<>% fill_panel(panel = BoxPlot(), column = 2, row = 3)
PlotArea %<>% fill_panel(panel = BoxPlot(), column = 3, row = 3)
#確認
PlotArea
########