在 R 中创建具有专业外观的 Powerpoint

Posted

技术标签:

【中文标题】在 R 中创建具有专业外观的 Powerpoint【英文标题】:Creating Professional Looking Powerpoints in R 【发布时间】:2015-03-08 04:09:41 【问题描述】:

有没有使用 R 中的数据和 ReporteRs 等软件包生成完整 Powerpoint 的好方法? 我有大约 900 张幻灯片要创建。我们的分析师目前遵循这条道路:

DB --> SAS --> CSV --> PPTX(嵌入式图形)(x900 次)

这是手动操作,容易出错且速度慢。

理想情况下,我更喜欢:

DB --> R + ReporteRs --> PPTX (x1 time)

问题是 2 倍的。首先,我们的客户(不合理地)更喜欢 PPTX,而不是 Web 甚至 PDF 格式。其次,R 图形无法在 PPTX 中进行编辑,并且有时尺寸/格式不理想,尤其是在轴文本大小方面。 那么有没有办法使用 R 来创建可编辑的 Powerpoint 图形、超链接目录等? 如果不是这样,至少有 一套好的 ggplot2 模板可以与像样的 PPTX 一起使用演示文稿格式

【问题讨论】:

你见过这个吗? support.rstudio.com/hc/en-us/articles/… 我使用 devEMF und emf(...) 来获取图形,我可以在 PPTX 中进行修改...但它不是真正的自动...而且它似乎已从 CTAN 中删除 :( @ 987654322@ ...我认为Powerpoint只知道WMF和EMF(作为矢量格式) @darwin,我知道,但我们的客户出于某种原因与 .PPTX 结缘 要以编程方式编辑 .pptx,您可以使用 vbs/vba。 PPT 只能接受 EMF 和 WMF 作为矢量格式的说法是不正确的。 (它是在 Mac 平台上开发的。)查看 setEPS()postscript() 文档以了解创建 .eps 文件的方法,这些文件被 PPT 接受,矢量映射,并且至少在其“白色”区域是透明的。我刚刚测试了在 rgb 颜色中使用透明度的能力,并且可以在 Mac 上运行。 【参考方案1】:

您可以使用我刚刚在 CRAN 上发布的新 export 包以本机 Office 矢量格式轻松导出到 Office (Word/Powerpoint),从而生成完全可编辑的图形,请参阅 https://cran.r-project.org/web/packages/export/index.html 和 https://github.com/tomwenseleers/export

例如:

install.packages("export")
library(export)

?graph2ppt
?graph2doc

library(ggplot2)
qplot(Sepal.Length, Petal.Length, data = iris, color = Species, 
      size = Petal.Width, alpha = I(0.7))
graph2ppt(file="ggplot2_plot.pptx", width=7, height=5) 
graph2doc(file="ggplot2_plot.docx", width=7, height=5) 

【讨论】:

【参考方案2】:

解决了。原来是“不看说明书”的严重案例。解决方案是使用ReporteRs R 包并阅读手册。 :)


手册:

addPlot ReporteRs
addPlot(doc, fun, pointsize = 12, vector.graphic = F, ...)
vector.graphic  
logical scalar, if TRUE, vector graphics are produced instead of PNG images.
SVG will be produced for bsdoc objects and DrawingML instructions for docx and
pptx objects.  
DrawingML instructions offer advantage to provide editable graphics
(forms and text colors , text     contents, moving and resizing is disabled).

关键段落:[...] pptx 对象的DrawingML 指令。 DrawingML 指令提供 [the] 优势 [of] 提供 [ing] 可编辑图形。

所以只需设置 vector.graphic=TRUE 即可。

我现在可以在 Powerpoint 中编辑在 R 中创建的图形:图例、轴文本、所有图形符号。一切。这是圣诞节来得早!感谢 ReporterRs 的创作者!我现在可以在 3 小时内完成以前需要 300 小时的工作!太棒了。

完整的例子如下:

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)
)
# Add titles and then 'myplot'
mydoc = addPlot( mydoc, function( ) print( myplot ), vector.graphic=TRUE)  
writeDoc( mydoc, file = "~/CustomReport.pptx" )

结果:

【讨论】:

支持演示。花了我一些调试时间,因为我的工作区中有一个非标准的iris 版本,但我能够获得一个 Mac 版本的 R 来编写一个 Mac 可读的 .pptx 文件。格式为 SVG,由 grDevices-package 的“cairo”页面上描述的svg()-function 编写。 @skan 见this article。虽然输出不在 pptx 中。 也许我没有使用正确的词。您如何创建一个像上面这样的幻灯片,但每次按下按钮时,点(蓝色和绿色)一个一个地出现? @Skan:在将 ggplot2 对象从 R 导出到 *.pptx 后,您可以在 powerpoint 中手动执行此操作,如 Serban 所述。导出的图像是完全可编辑的。 ReporteRs 软件包现已弃用,并已由官员取代。我刚刚创建了一个实用程序包导出,可以轻松地将大量 R 图表导出到 Powerpoint,它刚刚出现在 CRAN 上 - 请参阅 cran.r-project.org/web/packages/export/index.html 和 github.com/tomwenseleers/export

以上是关于在 R 中创建具有专业外观的 Powerpoint的主要内容,如果未能解决你的问题,请参考以下文章

在 python 中创建矢量图形以用于 word/powerpoint 的最佳方法

如何在 R 中创建具有特定间隔的向量?

在 R 中创建具有匹配颜色和线条形状的图例

在 R 中创建具有简单特征的 voronoi 多边形

在R中创建具有特定迭代的列表

如何在r中创建一个具有正态分布的矩阵?