ggplotsのリストからggplotsのグリッドの複数ページpdfを生成しようとしています。私はこれを行うために非常に多くの方法を試して成功していません。ここで私が働いてきたものに再現性と同等である:ggplotプロットのグリッドの複数ページのpdfファイルを生成
library(ggplot2)
# generate a data frame w same structure as the one I'm working with
time <- c(1:10)
veclist <- list()
veclist[[1]] <- time
for (i in 2:25){
veclist[[i]] <- as.vector(c(runif(10,-2,2)))
}
d <- as.data.frame(do.call(rbind, veclist))
d <- as.data.frame(t(d))
colnames(d)[1] <- "time"
for (i in 2:length(d)){
colnames(d)[i] <- paste("name",i,sep=" ")
}
# for a common axis
numericvalues <- d[,2:length(d)]
# generate plot(s)
name_list = paste("`",names(d),"`",sep="")
plot_list = list()
for (i in 2:length(d)) {
p = ggplot(d, aes_string(x=name_list[[1]], y=name_list[[i]])) +
geom_point() +
labs(x="time",title=paste(strwrap(names(d[i]), width = 30),collapse = "\n")) +
theme(plot.title = element_text(size=10,hjust = 0.5),axis.text.x=element_text(size=6)) +
coord_cartesian(ylim = c(min(numericvalues, na.rm = TRUE), max(numericvalues, na.rm = TRUE)))
plot_list[[i]] = p
}
私はplot_listのプロットの複数ページのPDFのグリッドを生成するために探しています(理想的には3列、ページごとのプロットの4行の)。
私が試してみましたいくつかのこと:
pdf("test.pdf")
do.call("marrangeGrob",c(plot_list,ncol=3,nrow=2))
は読めないPDFファイルを生成します。
pdf("test.pdf")
do.call("grid.arrange",c(plot_list))
は、「gList」エラーで許可された「grobs」のみを返します。
library(tidyr)
df <- d %>% gather(var, val, -time)
df_list <- split(df, df$var)
(ⅱ:ここ
を使用し、arrangeGrob(メートル)にはもはや必要ではありませんもちろん、プロットのリストを生成する方法は、リストの最初の項目がNULLであることを意味しました。私はそれを逃したとは信じられません - ありがとう! – jlotus