【问题标题】:Placing Pairs of Plots on a Single Page and then Merging Two PDFs将成对的绘图放在一个页面上,然后合并两个 PDF
【发布时间】:2018-06-27 22:16:14
【问题描述】:

我创建了一个包含 6 个地图图的 pdf 文件,但我希望它们成对并排,而不是像现在这样每个都在单独的页面上(目前所有六个图都在六个不同的页)。完成后,应该有 3 页,每页上都有成对的并排图。

除此之外,我还想将这些图附加到包含一些描述性统计信息的现有 pdf 中。

虽然我知道这些都可以使用其他软件和工具包完成,但它们不适用于我的任务,因为我正在创建一个执行统计分析的函数,创建上述图,然后将它们放入 pdf .

以下是我用来创建原始 PDF 的代码:

  pdf("Map Prints.pdf")
  print(map1)
  print(map2)
  print(map3)
  print(map4)
  print(map5)
  print(map6)

  dev.off()

非常感谢任何帮助。

【问题讨论】:

  • 您查看过knitrrmarkdown 吗?可以将文本、r文本输出和图形结合起来输出成pdf。
  • @WalkerintheCity 已经死了——有了rmarkdown,您可以将所有代码放在一个文档中,执行您的统计分析,并将您的文本、表格和图形放入您的 pdf 中。如果由于某种原因您不能使用rmarkdown,请尝试help("layout")
  • @duckmayr 是的,这当然是我研究这个问题时首先想到的。但是,要在我的函数中使用 Markdown 创建 pdf 的代码很难找到,我无法弄清楚它应该如何完成......
  • @dayleymart 如果您使用rstudio,您可能想尝试创建一个r 笔记本。它实际上是我在r(对于一个类)中使用过的第一种类型的文档,我认为它非常直观。它可以像rmd 文档一样转换成pdf。我真的不明白你的具体问题是什么。
  • @WalkerintheCity 我知道有一些方法可以创建 pdf。但是,我正在尝试找到一种在函数内创建 pdf 的方法,以便当用户调用该函数时,图形会成对(并排)生成并保存为 pdf。

标签: r pdf merge maps


【解决方案1】:

这是一个快速而肮脏的例子:

使用ggplot 创建,gridExtra 排列这些,ggsave 将它们保存到 .pdf 文件。所有这些都可以包含在一个函数调用中,该函数调用接受绘图名称列表(或创建绘图的输入)作为其参数。

代码

library(ggplot2)
p1 <- ggplot(mtcars, aes(x = disp, y = mpg)) + geom_point()
p2 <- ggplot(mtcars, aes(x = hp, y = mpg)) + geom_point()
p3 <- ggplot(mtcars, aes(x = wt, y = mpg)) + geom_point()

library(gridExtra)
combined <- grid.arrange(p1, p2, p3, ncol = 2)

# To save, use ggsave() function 
ggsave("file_name.pdf", combined, heigth = 11, width = 17, dpi = 600)

您可以在您希望在同一页面上拥有的图上选择性地调用该函数并获取所有单独的页面。有几个功能可以将 pdf 页面合并到一个文档中,例如tabulizer::merge_pdf 或为How to append a plot to an existing pdf fileCombine (bind) existing pdf files in Rcombine multiple pdf plots into one file 等发布的答案。

【讨论】:

    猜你喜欢
    • 2017-10-23
    • 1970-01-01
    • 2013-06-13
    • 2012-06-16
    • 2011-05-04
    • 2019-10-30
    • 2010-10-06
    • 1970-01-01
    • 2011-03-16
    相关资源
    最近更新 更多