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

Posted

技术标签:

【中文标题】使用 R 将图形导出到 .eps 文件【英文标题】:Export a graph to .eps file with R 【发布时间】:2011-07-05 19:08:22 【问题描述】:

如何将图形导出为 .eps 格式的文件?我通常将我的图表导出到一个 .pdf 文件(使用“pdf”函数),它工作得很好。但是,现在我必须导出为 .eps 文件。

【问题讨论】:

您可以尝试在 R 中输入??eps 进行搜索。您将获得postscript 页面或至少ps.options(这将引导您访问postscript)。 另见pdf2ps将pdf文件转换为ps。 Shell 用法:$ pdf2ps plot.pdf,将创建plot.ps 【参考方案1】:

我发现创建后记的最简单方法如下,使用setEPS() 命令:

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

【讨论】:

令人惊讶的是它的实用性,以及它的隐藏程度。 是的,为我节省了很多截图 :) 非常感谢,我得到了 * .eps 格式的图表。【参考方案2】:

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

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

【讨论】:

这是一个有用的建议。 cairo_pspostscript 的不同之处在于它支持更多的 unicode 字形,但缺点是半透明处理不好,并且经常会触发位图而不是矢量输出。【参考方案3】:

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

【讨论】:

啊,这正是我需要的!你可以像这样修改大小:ggsave("name.eps", width = 20, height = 20, units = "cm")【参考方案4】:

postscript() 设备允许创建 EPS,但在您更改某些默认值的情况下。阅读?postscript了解详情。

这是一个例子:

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

【讨论】:

谢谢。我正在尝试使用它,但出现错误:图形边距太大... 增大绘图尺寸:例如postscript("foo.eps", horizontal = FALSE, onefile = FALSE, paper = "special", height = 10, width = 10)。单位为英寸。问题是您要绘制的设备不够大,无法包含您正在使用的绘图区域的边距。 我需要导出的 *.eps 才能在 Microsoft Powerpoint 中工作,但最初并非如此。经过反复试验,我注意到我必须另外设置 postscript() 的参数 colormodel="rgb"【参考方案5】:

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

【讨论】:

以上是关于使用 R 将图形导出到 .eps 文件的主要内容,如果未能解决你的问题,请参考以下文章

MATLAB eps 导出不包括图例框

Matlab .Fig 等效于 R

matlab将eps文件转换成位图

R:如何将绘图/图形导出为 png 或 pdf 文件

以2D矢量格式转换/导出Pov-Ray的图形

如何将matlab图形转化成eps