如何将 R 图形打印到一个 PDF 的多个页面和多个 PDF?

How to print R graphics to multiple pages of a PDF and multiple PDFs?

提问人:Dan Goldstein 提问时间:9/9/2009 更新时间:7/20/2020 访问量:102612

问:

我知道那件事

 pdf("myOut.pdf")

将在 R 中打印为 PDF。如果我想怎么办

  1. 制作一个循环,在 PDF 文件的新页面上打印后续图表(附加到末尾)?

  2. 制作一个循环,将后续图形打印到新的 PDF 文件(每个文件一个图形)?

图形 R

评论


答:

44赞 Mark 9/9/2009 #1

不确定我是否理解。

附加到同一文件(每页一个图):

pdf("myOut.pdf")
for (i in 1:10){
  plot(...)
}
dev.off()

每个循环的新文件:

for (i in 1:10){
  pdf(paste("myOut",i,".pdf",sep=""))
  plot(...)
  dev.off()
}

评论

5赞 Dirk Eddelbuettel 9/9/2009
你甚至不需要在文件名上粘贴()——R 也可以为你做到这一点;看看我的答案。
0赞 Ruben 4/28/2016
你怎么能在每一页中包含几个情节?例如,一页中有 5 个图,下一页有 5 个图。我尝试在命令之前包含,但我只得到每个图(在本例中为 10 个图)出现在 10 页中,但具有函数中定义的维度大小,在本例中为 5 行和 1 列。提前致谢par(mfrow=c(5,1))plotpar
1赞 user3375672 9/14/2017
@Ruben。您应该在 par(mfrow=c(5,1)) 之前调用 pdf()(即:不是相反的方向)。您也可以考虑将 pdf() 中的宽度和高度增加到小。希望这会有所帮助。
64赞 Dirk Eddelbuettel 9/9/2009 #2

你看过帮助(pdf)吗?

用法:

 pdf(file = ifelse(onefile, "Rplots.pdf", "Rplot%03d.pdf"),
     width, height, onefile, family, title, fonts, version,
     paper, encoding, bg, fg, pointsize, pagecentre, colormodel,
     useDingbats, useKerning)

参数:

file: a character string giving the name of the file. For use with
      'onefile=FALSE' give a C integer format such as
      '"Rplot%03d.pdf"' (the default in that case). (See
      'postscript' for further details.)

对于 1),将 onefile 保留为默认值 TRUE。多个绘图进入同一个文件。

对于 2),将 onefile 设置为 FALSE,并选择一个 C 整数格式的文件名,R 将创建一组文件。

评论

8赞 Thomas Browne 11/25/2014
如果您使用的是网格布局,如何移动到下一个 PDF 页面?例如,您准备了一些 ggplot,将它们放入多页 PDF 第 1 页的视口中,但是您如何让下一个视口进入第 2 页......3 ....等?
1赞 statistical_model 1/26/2016 #3
pdf(file = "Location_where_you_want_the_file/name_of_file.pdf", title="if you want any")
plot() # Or other graphics you want to have printed in your pdf
dev.off()

您可以在 pdf 中绘制任意数量的内容,这些绘图将添加到不同页面的 pdf 中。 dev.off() 关闭与文件的连接,将创建 pdf,您将看到类似的东西

> dev.off()
null device 1