如何使用 R 继续将数字保存为 pdf。请考虑以下示例:
require(ggplot2)
require(gridExtra)
TopFolder <- "...directory on my drive"
setwd(TopFolder)
pdf(file = paste(TopFolder,"figures","example.pdf",sep = "\\"))
g <- list()
for(i in 1:4){
dat <- data.frame(d1 = c(1:10),
d2 = runif(10))
g[[i]] <- qplot(x = d1, y = d2,
data = dat)
}
grid.arrange(g[[1]],g[[2]],g[[3]],g[[4]])
for(i in 1:6){
dat <- data.frame(d1 = c(1:20),
d2 = runif(20))
qplot(x = d1, y = d2,
data = dat)
}
dev.off()
我的问题是:为什么第二组图(即第二个 for 循环生成的 6)没有出现在 pdf 文件中?我能发现的唯一明显的区别是我将绘图存储在第一个循环中,而没有存储在第二个循环中。为什么 R 不在第二个循环中生成这些图并在完成后将它们保存在 pdf 中?
我期望这个例子的结果是 pdf 的第一页有四个子图,然后有 6 页,每页一个图。为什么没有生成这个?我本以为 R 会继续生成文件中的数字,直到调用 dev.off() 为止?
最佳答案
...并将上面的所有命令放在一起
require(ggplot2)
require(gridExtra)
TopFolder <-"...directory on my drive"
setwd(TopFolder)
pdf(file = file.path(TopFolder,"figures","example.pdf"), onefile=TRUE)
g <- list()
for(i in 1:4){
dat <- data.frame(d1 = c(1:10),
d2 = runif(10))
g[[i]] <- qplot(x = d1, y = d2,
data = dat)
}
grid.arrange(g[[1]],g[[2]],g[[3]],g[[4]])
gg <- list()
# each of this plots will be on a separate page
for(i in 1:6){
dat <- data.frame(d1 = c(1:20),
d2 = runif(20))
# here a print is necessary
print(qplot(x = d1, y = d2,
data = dat))
}
dev.off()
关于r - 在 R 中附加 pdf 文件 - dev.off(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18184061/