目前,我总是使用优秀的ReporteRs
包将我的R图导出为矢量格式的Powerpoint,如
library(ReporteRs)
myplot = function() print(qplot(Sepal.Length, Petal.Length, data = iris, color = Species, size = Petal.Width, alpha = I(0.7)))
doc = pptx()
doc = addSlide(doc, slide.layout = "Blank")
doc = addPlot( doc, myplot, vector.graphic = TRUE, fontname="Arial",
offx = 0.1*dim(doc)$slide.dim["width"], offy = 0.05*dim(doc)$slide.dim["height"],
width = 0.8*dim(doc)$slide.dim["width"], height = 0.9*dim(doc)$slide.dim["height"])
writeDoc( doc, "plot.pptx")
我觉得在这个工作流程中不方便的是,我现在必须将我的绘图命令包装在一个函数中(print()
用于lattice
或ggplot2
图,或只是{{1}对于基础R图),我不喜欢手动指定偏移和大小(我通常更喜欢在幻灯片中获得几乎填充页面,居中的图形)。我只是想知道是否不可能首先制作你的情节(基础R图,return(plot())
图或lattice
图)然后定义一个捕获输出的函数ggplot2
当前图形设备作为一个函数,并将其传递给export2PPT
和ReporteRs
,以将您的绘图导出为Powerpoint(居中和适当缩放),类似于函数addPlot
以同样的方式导出为PDF?
一旦我们有了这样一个函数,甚至可能modify the grDevices
source code函数windows() and savePlot()都有一个额外的命令File ...如果使用dev.copy2pdf
设备那么另存为Powerpoint?或者这是R Core人的事情吗?
鉴于MS Office / LibreOffice的主导地位,特别是在课堂上使用时,我认为这将非常方便。 (因为Powerpoint比PDF更容易编辑,允许人们在R图的最终布局中轻松做出小的改动,矢量输出至少和PDF一样好,而且完全支持透明度 - 对于PDF我发现导入Inkscape通常有点儿麻烦,除非使用Adobe Illustrator)
有谁知道怎么做?
编辑:在此期间我找到了解决方案,并且已经包装导出函数以将当前活动的R图导出到CRAN上的软件包中的powerpoint,请参阅 https://cran.r-project.org/web/packages/export/index.html和 https://github.com/tomwenseleers/export用于演示用法。该软件包现在使用官方软件包作为后端,因为不推荐使用ReporteR ...答案 0 :(得分:32)
刚刚创建了一个新的CRAN包export
,允许用户将当前活动图形设备中的R图以可编辑(DrawingML)矢量格式导出为Powerpoint或Word(或LibreOffice Impress / Writer) -liner,完全支持透明度等,请参阅
https://cran.r-project.org/web/packages/export/index.html
和演示
https://github.com/tomwenseleers/export
例如:
install.packages("export")
library(export)
导出lattice
剧情的示例:
library(effects)
fit=lm(prestige ~ type + income*education, data=Prestige)
plot(Effect(c("income", "education"), fit),multiline=T, ci.style="bands")
graph2ppt(file="effect plot.pptx", width=7, height=5)
在“ungroup”上右击PPT后可以看到很好的矢量格式:
从Word或PPT这些图表也可以通过使用文件...另存为... PDF完美导出(矢量格式)PDF,并且比直接编辑更容易对布局进行微调。 PDF。
如果R Core或RStudio的人想要包含这个功能,那么 - 考虑到Office套件的主导地位和广泛使用,我认为在课堂上使用会非常方便!
答案 1 :(得分:0)
您可以尝试eoffice软件包,该软件包在CRAN中也可用。