使用R将图形导出为.eps文件

125

我该如何将图形导出为eps格式文件?我通常使用“pdf”函数将图形导出为pdf文件,效果很好。但现在我需要导出为eps文件。


您可以尝试在R中键入“??eps”进行搜索。您将获得“postscript”页面或至少是“ps.options”(这将带您到“postscript”)。 - Roman Luštrik
另请参阅pdf2ps将pdf文件转换为ps。Shell用法:$ pdf2ps plot.pdf,将创建plot.ps - Paul Rougieux
5个回答

150

我发现创建后置脚本最简单的方法是使用setEPS()命令:

setEPS()
postscript("whatever.eps")
plot(rnorm(100), main="Hey Some Data")
dev.off()

3
这个功能非常实用,而且它的存在很隐蔽。 - CompEcon
是的,节省了我很多截屏 :) - chepukha
非常感谢,我需要将图形保存为*.eps文件。 - lbenitesanchez

65

如果你正在使用ggplot2生成图像,那么ggsave(file="name.eps")也可以使用。


6
啊,这正是我所需要的!你可以像这样修改大小:ggsave("name.eps", width = 20, height = 20, units = "cm") - DirtStats

33

postscript() 设备允许创建 EPS,但只有在更改一些默认值时才能实现。请阅读 ?postscript 获取详细信息。

这里是一个示例:

postscript("foo.eps", horizontal = FALSE, onefile = FALSE, paper = "special")
plot(1:10)
dev.off()

谢谢。我正在尝试使用它,但出现了一个错误:图形边距太大... - mStudent
6
例如,将绘图尺寸扩大:postscript("foo.eps", horizontal = FALSE, onefile = FALSE, paper = "special", height = 10, width = 10)。单位为英寸。问题在于你所绘制的设备不够大,无法容纳你正在使用的绘图区域的边距。请扩大绘图尺寸。 - Gavin Simpson
1
我需要将导出的*.eps文件在Microsoft Powerpoint中使用,但最初并非如此。经过一些尝试和错误,我注意到我还需要设置postscript()函数的参数colormodel="rgb" - agoldev

17

另一种方法是使用基于Cairographics的SVG、PDF和PostScript图形设备。这样你就不需要 setEPS()

cairo_ps("image.eps")
plot(1, 10)
dev.off()

2
这是一个有用的建议。cairo_pspostscript不同之处在于它支持更多的Unicode字形,但缺点是半透明处理不佳,往往会触发位图而不是矢量输出。 - Martin Smith

5

是的,打开一个以.eps结尾的文件名的postscript()设备,进行绘图并调用dev.off()


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