とある技術者の徒然草

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

【R言語】forで回して、do.call("grid.arrange")で複数グラフを表示、その後画像を保存。

forで回して、do.call("grid.arrange")で複数グラフを表示、その後画像を保存。

複数グラフの保存は以前と同じように リストにggplotオブジェクトをぶち込む。 do.callをそのまま変数に入れてggsaveで保存。

 
plots <- list() #リストを用意する
i <- 1
df_iris <- iris
varname_df <- names(iris)
length(varname_df)

#aes_stringを使用するとベクトルで軸を指定できる

for(i in 1:(length(varname_df)-2)){
  plots[[i]] <- 
    ggplot(data = df_iris,aes_string(x = varname_df[i],y = varname_df[i+1],colour="Species"))+
    geom_point()+
    theme_bw()+
    theme(text = element_text(size=8),
          axis.text.x = element_text(angle = 90, hjust = 1,vjust=0.5),
          axis.text.y = element_text(size=10),
          axis.title=element_text(size=10,face="bold"))
}

do.call("grid.arrange", c(plots, ncol=2))

p3 <- do.call("grid.arrange", c(plots, ncol=2))
ggsave("filename.jpg", p3)


こんな感じ。 f:id:M_taka072:20200212215806j:plain