とある技術者の徒然草

生産技術者の適当な日記(統計言語Rに関するメモがメイン)

【R言語】ggplotグラフを複数表示

ggplotグラフを複数表示

リストにグラフを繰り返し代入してまとめて表示するやり方のメモ。

library(dplyr)
library(gridExtra)

#sdf <- sample_frac(multi.regression.compounds,size = 0.05)
#pairs(sdf)

#sdfは1列目が目的関数 "preprocessed.y

varname <- names(sdf)[2:10]
#空のリストを作成
plots <- list()

for(i in 1:length(varname)){
  plots[[i]] <- ggplot(sdf , aes_string(x = varname[i], y = "preprocessed.y"))+
    geom_point()+
    geom_smooth(method = "lm")+
    labs(title= paste0("(",i,") ", "preprocessed.yと", varname[i], "の散布図"))+
    theme_bw()
}
plots[1]


##grid.arrangeとdo.callを使用
#gridExtra::grid.arrange(plots)
n <- length(plots)
nCol <- floor(sqrt(n))
do.call("grid.arrange", c(plots, ncol=nCol))

##パッチワークを使用
#devtools::install_github("thomasp85/patchwork")
library(patchwork)
wrap_plots(plots)