我喜欢ggplot产生的情节.然而,直接获得出版质量图仍然有些麻烦.我通常不得不在Illustrator中进行一些后期处理(即更改字体,编号等).虽然我可以保存为tiff或png,但eps最适合在Illustrator中操作数字(我可以取消组合对象,移动图例/文本等).
当我保存一个具有一定透明度的ggplot对象(以点或更平滑)时,我收到此错误:
Warning message:
In grid.Call.graphics("L_points", x$x, x$y, x$pch, x$size) :
semi-transparency is not supported on this device: reported only once per page
Run Code Online (Sandbox Code Playgroud)
有解决方法吗?
Ras*_*sen 29
这有效:
ggsave("filename.eps", device=cairo_ps)
Run Code Online (Sandbox Code Playgroud)
See*_*tle 19
我在使用该postscript功能时遇到了同样的问题.我发现cairo_ps从grDevices包中确实支持透明度(至少在Ubuntu 10.04中使用R版本2.10.1).用法是:
cairo_ps(filename='filename.eps', width=7, height=7)
plot(x,y)
dev.off()
Run Code Online (Sandbox Code Playgroud)
zwo*_*wol 17
R的eps"设备"不支持部分透明度,但是,如果我没记错的话,它的PDF设备会支持.Illustrator应该能够读取与EPS相同的PDF,或者如果没有,尝试用它们转换它们pdftops(不是 pdf2ps,它们是完全不同的程序,而pdf2ps的输出是......劣质).
需要注意的是R不尝试优化PDF输出可言,因此,即使你得到的是不需要后期制作的阴谋,你会希望像通过压缩工具来运行它qpdf至少是.
您也可以尝试通过svg设备导出为SVG.不确定Illustrator是否可以读取SVG,但是Inkscape可以,并且它是开源的:)我在Inkscape中用R输出到SVG做了一些好事,并且分组与EPS保持一致.不能100%确定它处理不透明度,但我确定它在SVG标准中.
EPS 格式原则上不支持半透明 - 如果您想要半透明并且能够在 Illustrator 或 Inkscape 中进行编辑,您最好导出为 SVG 或 PDF。如果您确实与 EPS 格式相关联,则可以使用该cairo设备,并指定需要光栅化半透明对象的分辨率(只有非半透明元素保持矢量格式,然后,半透明区域被光栅化为位图)。这样做的语法是:
cairo_ps(file = "test.eps", onefile = FALSE, fallback_resolution = 600)
qplot(Sepal.Length, Petal.Length, data = iris, color = Species, size = Petal.Width, alpha = I(0.7))
dev.off()
Run Code Online (Sandbox Code Playgroud)
或者
ggsave("filename.eps", device=cairo_ps, fallback_resolution = 600)
Run Code Online (Sandbox Code Playgroud)
另一种选择是以矢量格式导出到 MS Office Powerpoint,并在那里进行任何布局编辑。这可以使用我的新export包轻松完成,请参见
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))
graph2ppt(file="ggplot2_plot.pptx", width=6, height=5)
Run Code Online (Sandbox Code Playgroud)
这将生成一个完全可编辑、高质量的 Powerpoint 图表,采用基于原生 Office 矢量的 DrawingML 格式,并完全支持透明度。在那里,您可以轻松修复较小的格式问题,并通过打印为 PDF 导出为高质量的 PDF。
您还可以使用它导出到 Word、Excel、Latex 或 HTML,还可以使用它导出各种 R 统计对象的统计输出。
它还具有通过graph2eps(file="plot.eps", width=6, height=5, fallback_resolution=600)半透明区域的光栅化导出到 eps的功能...