R eps导出并导入到Word 2010中

时间:2012-10-05 13:59:41

标签: r ms-word ggplot2

我在从R导出eps文件并导入到Word 2010时遇到了问题。

我正在使用ggplot2图,例如

library(ggplot2)
p <- qplot(disp,hp,data=mtcars) + stat_smooth()
p

即使在调用setEPS()之后,以下任何一个都不会生成可以成功导入的文件。

ggsave("plot.eps")

postscript("plot.eps")
print(p)
dev.off()

奇怪的是,如果我使用File生成情节 - &gt; Save As - &gt;从GUI菜单中Postscript,可以正确导入。但是,当Word文档随后导出为pdf时,图形中的字体会有点锯齿状。

所以我的问题是:

  • ggsave / postscript)设置的哪些组合允许我生成可导入Word 2010的eps文件?
  • 如何将Word文档导出为pdf格式时,如何确保字体保持清晰?

更新

经过更多的调查,我有更多的运气与cairo_ps来制作情节。但是,导入Word时不会显示任何文本。

此外,在检查乳胶文档中的各种eps输出(cairo_ps,从GUI中保存ggsave)之后,Word中的eps导入过滤器似乎很难打印/ pdf输出与乳胶文件的质量不匹配。 ggsave版本(使用postscript)确实存在颜色问题,但其他两种方法都没有。

结论是这是一个Word问题,因此fortune(109)不适用。我很乐意以其他方式得到证明,但我会将答案和赏金奖励给能够提供命令的人,这些命令可以在命令格式中复制GUI的输出。

5 个答案:

答案 0 :(得分:4)

这对我有用......请按照postscript帮助页面中的建议进行操作:

 postscript("RPlot.eps", height = 4, width = 4, horizontal = FALSE, onefile = FALSE,
             paper = "special")
 library(ggplot2)
 p <- qplot(disp,hp,data=mtcars) + stat_smooth()
 p
#geom_smooth: method="auto" and size of largest group is <1000, so using loess. Use 'method = x' to #change the smoothing method.
#Warning message:
#In grid.Call.graphics(L_polygon, x$x, x$y, index) :
#  semi-transparency is not supported on this device: reported only once per page
 dev.off()
#quartz 
#     2 

最后有趣的东西让你注意到,到目前为止,这只是Mac测试的解决方案。

编辑:我刚用R版本2.15.1(2012-06-22)测试了它 - “烤棉花糖”:平台:i386-pc-mingw32 / i386(32位)和Win XP中的MS Word 2007它起作用了。命令是Insert / Picture ... / select eps format / select file。

Edit2:除了直接使用postscript设备之外,还有另一种保存方法。具有"eps"模式的savePlot方法在Windows中可用(但在Mac中不可用)。我同意这些字体不像Mac上显示的那样平滑,但我可以看出使用savePlot保存和使用另存为交互式窗口时的质量没有区别。

savePlot(filename = "Rplot2", type = "eps", device = dev.cur(), restoreConsole = TRUE)

savePlot来电(.External(CsavePlot, device, filename, type, restoreConsole))

答案 1 :(得分:4)

我解决了从R导出.eps文件并使用colormodel="rgb"命令的"srgb"选项(默认为postscript)导入到Windows 7上的Word 2010的问题。

postscript("RPlot.eps", height = 4, width = 4, horizontal = FALSE, 
         paper = "special", colormodel = "rgb")
library(ggplot2)
p <- qplot(disp,hp,data=mtcars) + stat_smooth(se=FALSE, method="loess")
p
dev.off()

答案 2 :(得分:1)

您最好使用wmf作为可在Windows上创建的格式。

答案 3 :(得分:1)

Word确实不能很好地支持EPS。 更好的解决方案是直接以原生Office格式将图形导出到Word或Powerpoint。我刚刚创建了一个新的包,导出,确实如此,请参阅 https://cran.r-project.org/web/packages/export/index.html和 用于演示 https://github.com/tomwenseleers/export

典型的语法非常简单,例如:

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

输出是矢量格式,因此在Word或Powerpoint中取消组合图形后可以完全编辑。您还可以使用它导出各种R stats对象的统计输出。

答案 4 :(得分:0)

您可以使用R studio编辑包含所有绘图的html文件,然后使用Word打开HTML文件。

knitr tutorial