用R图填充整个PowerPoint幻灯片?

时间:2017-03-19 22:10:08

标签: r powerpoint reporters

如何使用R图填充整个PowerPoint幻灯片?我想使用矢量图形(否则截图和裁剪将是一个解决方案)。我也想避免手动触摸。

以下代码(从this post抓取)可以很好地填写“标题和内容”幻灯片的“内容”。

library( ReporteRs )
require( ggplot2 )
mydoc = pptx( )
mydoc = addSlide( mydoc, slide.layout = "Title and Content" )
mydoc = addTitle( mydoc, "Plot examples" )
myplot = qplot(Sepal.Length, Petal.Length
               , data = iris, color = Species
               , size = Petal.Width, alpha = I(0.7)
)
mydoc = addPlot( mydoc, function( ) print( myplot ), vector.graphic=TRUE)
writeDoc( mydoc, file = "test plot.pptx" )

我以为我可以使用以下代码填充整张幻灯片:

library( ReporteRs )
require( ggplot2 )
mydoc = pptx( )
mydoc = addSlide( mydoc, slide.layout = "Blank" )
#mydoc = addTitle( mydoc, "Plot examples" )
myplot = qplot(Sepal.Length, Petal.Length
               , data = iris, color = Species
               , size = Petal.Width, alpha = I(0.7)
)
mydoc = addPlot( mydoc, function( ) print( myplot ), vector.graphic=TRUE)
writeDoc( mydoc, file = "test plot.pptx" )

但是,我收到错误消息:

Error in next_shape_pos(doc) : 
  shape of type 'plot' has no more room left to be displayed in the layout

我认为可能有一个解决方案,我创建新的PowerPoint幻灯片布局,内容填充整个幻灯片,然后保存为PowerPoint模板?但是我对这些东西并不是很熟悉,我开始觉得我错过了一些明显的东西。

1 个答案:

答案 0 :(得分:2)

您已经有效地回答了自己的问题。您需要在PowerPoint中使用新布局创建模板,该布局具有填充幻灯片的单个内容占位符。

在PowerPoint 2016中,您将执行以下操作:

  • 文件 - >新 - >空白演示文稿
  • 删除第一张(也是唯一的)幻灯片
  • 查看 - > Slide Master
  • Slide Master - >插入布局
  • 删除此布局上的所有现有占位符
  • Slide Master - >插入占位符 - >含量
  • 调整新占位符的大小以填充幻灯片
  • 右键单击左侧布局列表中的布局
  • 重命名布局
  • “整页内容”
  • 文件 - >另存为 - >浏览
  • 选择演示模板的位置和名称(例如“Documents / R / BlankPresentation.pptx”)

现在运行以下R代码:

library(ReporteRs)
library(ggplot2)
mydoc <- pptx(template = "path to presentation template saved above")
mydoc <- addSlide(mydoc, slide.layout = "Full page content")
myplot <- qplot(
  Sepal.Length,
  Petal.Length,
  data = iris,
  color = Species,
  size = Petal.Width,
  alpha = 0.7
)
mydoc <- addPlot(mydoc, function() print(myplot), vector.graphic = TRUE)
writeDoc(mydoc, file = "test plot.pptx")