从R中将多个图表导出到ppt

4
我在这里找到了一个功能,可以创建包含R创建的绘图的幻灯片的ppt。这是该功能的链接:R: Function to export currently active R plot to Powerpoint/Word/LibreOffice 我想让我的程序添加几个幻灯片(每个幻灯片包含一个绘图)。
我目前使用: export2ppt(file="plot.pptx"),但我不知道如何将第二个图形添加到同一文件中。

在您的函数中使用了addPlot(),它添加了一个新的带有图形的列表,因此如果想要添加其他图形,可以多次使用它。 - Batanichek
在这里创建文档 - 每个文件只需要一次 if (type=="PPT") {doc = pptx();doc = addSlide(doc, slide.layout = "Blank");pagesize = dim(doc)$slide.dim} else {doc = docx();pagesize = dim(doc)$page-dim(doc)$margins[c(4,3)]} pageaspectr = pagesize["width"]/pagesize["height"] - Batanichek
我看到了,但是认为重复使用函数export2ppt(file="plot.pptx")会添加一个新幻灯片。然而,它实际上覆盖了第一个pptx,并在其中添加了一个新的图表。 - user2506015
是的,因为在您的函数中,每次都会创建文档。因此,您需要编辑该函数或者像这样使用它:doc=pptx(),然后对于每个图表使用 addSlide()+addPlot(),最后再使用 writeDoc() - Batanichek
下面的答案已经过时,因为ReporteRs已从CRAN中删除,并被officer取代。我刚刚创建了一个新的包,它基于officer构建,可以轻松地将多个图表导出到单个Powerpoint演示文稿中。 - Tom Wenseleers
3个回答

4

试试以下示例

library(ReporteRs)
doc =pptx( ) # create pptx
doc=addSlide(doc,"Title and Content") # add slide
doc<-addTitle(doc,"first") # add title
fun_1<-function(){
  plot(mpg ~ wt,  data = mtcars)
}
doc <- addPlot(doc, fun= fun_1,vector.graphic =FALSE )  # add plot

doc=addSlide(doc,"Title and Content") # add slide
doc<-addTitle(doc,"Second") # add title

fun_2<-function(){
  plot(mpg ~ cyl,  data = mtcars)
}
doc <- addPlot(doc, fun= fun_2,vector.graphic =FALSE ) # add plot
writeDoc(doc, "r-2.pptx" )

1
我不得不从GitHub安装,因为我在CRAN上找不到它。但是,当我试图使用代码时,我收到了这个警告/错误:“请考虑使用包officer而不是包ReporteRs。这个包需要Java <= 1.8,但是没有可用的版本”,并且“函数pptx已被弃用,请改用officer::read_pptx()。pptx()中的错误:java.lang.NoClassDefFoundError:javax / xml / bind / JAXBException”。 - emr2

2
下面的答案已经过时,因为ReporteRs已从CRAN中删除,并被officer取代。我刚刚创建了一个新的包export,它是建立在officer之上的,可以使用graph2ppt()命令和append=TRUE选项轻松地将多个图形导出到单个Powerpoint演示文稿中,例如,生成一个包含2张幻灯片的演示文稿:
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) 
qplot(Sepal.Width, Petal.Length, data = iris, color = Species, 
      size = Petal.Width, alpha = I(0.7))     
graph2ppt(file="plots.pptx", width=6, height=5, append=TRUE) 

出现错误:在add_slide(doc,layout =“Blank”,master =“Office Theme”)中出错: 找不到名称为“Blank”的版式在名称为“Office Theme”的母版中。 - Soumya Boral

1

eoffice可能是另一个选择。使用以下命令:

install.packages("eoffice")
topptx(file="plots.pptx", width=6, height=5,append=T)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接