0

我正在尝试使用officer包来生成一个包含R基本图形的PowerPoint文档,最好不是固定分辨率,而是可编辑的矢量图形。这是我一直在尝试的,但生成的 PowerPoint 文档仍然缺少图表(中间.dml已创建并包含一些 XML)。

library (officer)
library (rvg)

# write an R base graphics plot to "plot.dml"
dml_pptx ("plot.dml")
x = (-300:300)/100
plot (x,sin(x),type="l",col="blue")
dev.off ()

# create a PowerPoint document
doc = read_pptx ()
doc = add_slide (doc,layout ="Title and Content",master="Office Theme")
ph_with (doc,external_img (src="plot.dml"),location=ph_location_type(type="body"))
print (doc,"example.pptx")

当我生成图形文件jpeg ("plot.jpg")然后在演示文稿中包含该文件时,它可以工作,但我想避免固定分辨率并让图表在 PowerPoint 中可编辑。

另一种策略可能是export包装,

library (export)

x = (-300:300)/100
plot (x,sin(x),type="l",col="blue")

graph2ppt (file="example2.pptx",width=6,height=6)

后者以交互方式工作,但在脚本中失败。我错过了什么?

在此先感谢您的帮助。

高功率滤波器

4

1 回答 1

1

您需要使用函数参数codedml提供包含绘图指令的表达式:

library(rvg)
library(officer)
library(magrittr)
read_pptx() %>% 
  add_slide(layout = "Title and Content", master = "Office Theme") %>% 
  ph_with(dml(code = {
    x = (-300:300)/100
    plot (x,sin(x),type="l",col="blue")
  }), location = ph_location_type(type = "body")) %>% 
  print(target = "demo_rvg.pptx")
于 2019-09-26T21:01:45.137 回答