读取PDF图,将它们排列在网格上,使用R保存在一页PDF中

时间:2019-07-13 15:38:49

标签: r pdf pdftk

我有3个R绘图另存为pdf文件(upper_left.pdfupper_right.pdflower.pdf)作为矢量图形,并且想要制作一个一页pdf文件并按以下步骤安排它们:

Three plots in one page

我已经尝试过的东西

我尝试使用magick::image_read_pdf阅读pdf并使用magick::image_append附加它们。更具体地说,

library(magick)

panel.ul <- image_read_pdf("upper_left.pdf")
panel.ur <- image_read_pdf("upper_right.pdf")
panel.l <- image_read_pdf("lower.pdf")

whole <- c(panel.ul, panel.ur) %>% 
    image_append() %>% 
    c(panel.l) %>% 
    image_append(stack = TRUE)

第一个问题是magick::image_read_pdf将图导入为png(如果我没错,虽然不是矢量图形)。

magick::image_append也可以“工作”,并在viewer窗格(在RStudio中,Help旁边)给我想要的东西。

然后我尝试使用export::graph2pdf(whole)保存它们,但这给了我空白页。

因此,如果我要使用magick,则有两个问题需要解决:

  1. 将图导入为矢量图形对象(不知道R中的技术术语)
  2. 将堆积的图导出到矢量pdf文件中。

我该如何解决?预先感谢。

1 个答案:

答案 0 :(得分:0)

您基本上完成了。您只需要添加

AutocompleteSearchFragment

您将在工作目录“ Rplot.pdf”中找到自己的地块。 savePlot有许多选项可定制您的pdf输出。确保检查plot(whole) # plot the external object generated in ImageMagick to R's plotting device savePlot(type = "pdf") # saves the current plotting device to a pdf file.

要从上方重新创建方案,您需要将上面板临时保存为单独的pdf,然后再将其粘贴到下面板的顶部:

?savePlot

如果上下面板看起来不成比例,则可以使用savePlot的heght和width参数来调整第一个pdf的大小。

whole2 <- image_append(c(panel.ul, panel.ur))
plot(whole2)
savePlot("whole2.pdf", type = "pdf")