原则的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()
或
ggsave("filename.eps", device=cairo_ps, fallback_resolution = 600)
另一种选择是出口到MS Office PowerPoint中矢量格式,以及做任何布局编辑那里。这可以通过使用ReporteRs
或者是建立在我自己的export
包来完成:
library(ReporteRs)
require(ggplot2)
mydoc = pptx()
mydoc = addSlide(mydoc, slide.layout = "Title and Content")
mydoc = addTitle(mydoc, "Plot examples")
myplot = qplot(Sepal.Length, Petal.Length
, data = iris, color = Species
, size = Petal.Width, alpha = I(0.7)
)
# Add titles and then 'myplot'
mydoc = addPlot(mydoc, function() print(myplot), vector.graphic=TRUE)
writeDoc(mydoc, file = "test plot.pptx")
或使用我的export
包(https://github.com/tomwenseleers/export):
library(export)
qplot(Sepal.Length, Petal.Length, data = iris, color = Species, size = Petal.Width, alpha = I(0.7))
graph2ppt(file="plot.pptx", width=8, aspectr=sqrt(2))
这将导致一个完全可编辑,基于本地Office矢量DrawingML格式的高质量Powerpoint图形,全面支持透明度。在那里,您可以轻松修复较小的格式问题,并通过打印为PDF格式导出为高质量的PDF。
下面还有一个简单的解决方案,可以将基于矢量的可编辑格式直接导出到Powerpoint,在这里您可以轻松修复次要格式问题,并且完全保留透明度。看看是否适合你... – 2015-06-26 16:57:45
我觉得我的答案更准确和完整地回答你的问题,所以你可能想检查一个正确的答案 - 好吧,看看你的想法... – 2017-11-28 16:10:43