我有一个 R 应用程序,它通过 Office 工具 (pptx) 构建大量客户端可编辑图表。我尝试将 ggplot 图嵌入到现有的矢量格式中。我使用 ph_with_vg_at 函数将图形导出到 pptx。关键是将图形导出到 pptx 会删除幻灯片上已经存在的所有元素。那么如何将图表导出到幻灯片而不删除幻灯片上的信息?
谢谢乔尼
我有一个 R 应用程序,它通过 Office 工具 (pptx) 构建大量客户端可编辑图表。我尝试将 ggplot 图嵌入到现有的矢量格式中。我使用 ph_with_vg_at 函数将图形导出到 pptx。关键是将图形导出到 pptx 会删除幻灯片上已经存在的所有元素。那么如何将图表导出到幻灯片而不删除幻灯片上的信息?
谢谢乔尼
试试 eoffice:
install.packages("eoffice")
library(eoffice)
gg <- ggplot(mtcars, aes(x = mpg , y = wt, colour = qsec)) + geom_point() + theme_minimal()
topptx(gg,file="gg.pptx")
好的
如果您了解语法,事实证明很简单......让我们以一个简单的ggplot为例:
require("officer")
require("rvg")
require("ggplot2")
gg <- ggplot(mtcars, aes(x = mpg , y = wt, colour = qsec)) + geom_point() + theme_minimal()
选项 1:打开现有演示文稿并插入一个新对象(同时删除演示文稿中的对象):
doc <- read_pptx() # Creat a virtual new pptx and set the ggplot as a new slide
doc <- add_slide(doc, layout = "Title and Content", master = "Office Theme")
doc <- ph_with_vg(doc, code =print(gg),type = "body")
print(doc, target = "G:/Layers/gg.pptx") # Exporting to Exist pptx file
选项 2:打开现有演示文稿并在现有幻灯片中嵌入对象而不删除幻灯片上的现有对象:
doc <- read_pptx(path = "G:/Layers/template.pptx")# Opening an Exist pptx file
doc <- on_slide( doc, index = 1)# Embedding of the ggplot into the slide
doc <- ph_with_vg_at(doc, ggobj = gg, left=0.1, top=0.1, width=7.5, height=6)
print(doc, target = "G:/Layers/template.pptx")# Exporting to Exist pptx file
乔尼