在给定大小的 PowerPoint 幻灯片中绘制 ggplot2 图 - R

Plotting a ggplot2 graph in a power point slide with a given size - R

我正在尝试使用 officer 包在幻灯片中绘制 ggplot2 图表。我实际上可以做到(直接在 ppt 中打印 ggplot2),但是因为我需要增加 ggplot2 图的大小(对于 ppt 幻灯片),我明白 ggplot2 图表取决于 window 的大小(在 RStudio 中)或您将其设置为就像您正在导出它一样,我正在寻找一种方法来 (1) 导出 ggplot2 图表给定大小(例如:height=5, width=8),(2)importing/reading来自ppt代码:

library(officer)
library(devEMF)
library(magrittr)
library(ggplot2)

t <- "../example.pptx"
filename <- gg

read_pptx() %>% 
  add_slide(layout = "Title and Content", master = "Office Theme") %>% 
  ph_with_img(src = filename, width = 6, height = 4, type = "body") %>% 
  print(target = t)

gg 是 ggplot2 中的任何图(实际上并不重要)。 t为输出文件地址。

ph_with_img

PowerPoint documents and graphics

PD:如果有一些 package/command 我不知道而且我仍然找不到,我可以在哪里编辑 ggplot2 的大小,那么所有这些都是不必要的。

我成功地将 ggplot2 图形保存为 .png,然后将该文件调用到 ph_with_img。有点迂回,但它的工作原理。您也可以将图表保存为 ?tempfile,然后再保存为 ?unlink,但我有点喜欢有一个我的图表文件夹。

ggplot() +
  (code for my ggplot)

ggsave("../thisplot.png", width = 6, height = 4)

read_pptx() %>% 
  add_slide(layout = "Title and Content", master = "Office Theme") %>% 
  ph_with_img(src = "../thisplot.png", width = 6, height = 4, type = "body") %>% 
  print(target = t)

我刚刚在 officer 的基础上制作了一个新包 export,它可以很容易地让人们使用命令 graph2ppt() 来做到这一点,并且可以很好地以矢量格式导出,而不是到上面发布的其他答案中的位图,例如

install.packages("export")
library(export)
library(ggplot2)
qplot(Sepal.Length, Petal.Length, data = iris, color = Species, 
      size = Petal.Width, alpha = I(0.7))     
graph2ppt(file="plots.pptx", width=6, height=5) 

下面展示了如何使用 officer 0.3.11 创建一个 ggplot 对象并将其作为矢量图直接导出到 powerpoint。关键是使用 ph_withlocation = ph_location。这允许您设置对象的位置和大小。


library(ggplot2)
library(dplyr, warn.conflicts = FALSE)
library(officer)
library(rvg)

t <- "example.pptx"

fig_gg <- ggplot(mtcars, aes(x=wt, y=mpg)) +
  geom_point()

fig_vg <- dml(ggobj = fig_gg)

read_pptx() %>% 
  add_slide(layout = "Title Only", master = "Office Theme") %>% 
  ph_with(fig_vg, location = ph_location(left = .5, top = 1.3, height = 5, width = 5)) %>% 
  print(t)

reprex package (v0.3.0)

于 2020 年 6 月 12 日创建