原則的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