【发布时间】:2019-03-03 08:31:42
【问题描述】:
我可以在 .pdf 中生成并保存 pdf 中的 ggplot 图,包括半透明(alpha):
library(ggplot2)
library(cowplot)
p <- qplot(Sepal.Length, Petal.Length, data = iris, color = Species, size = Petal.Width, alpha = 0.5)
save_plot("plot.pdf",p)
该图完美地显示在我的笔记本电脑 (Mac) 中,既可以作为 pdf 中的单个图,也可以嵌入到 word 文档中。然而,多年来我痛苦地经历过,我的图形中的半透明通常不会显示在其他人的计算机中,通常是当他们看到它们嵌入在 Microsoft Office 文档中时。当我必须在观众面前进行演示时,这尤其痛苦,突然间,我在会议室计算机中的 Powerpoint 演示文稿的数字什么都没有显示,只是一个空白的情节。如果我向期刊提交论文并且我收到编辑发来的电子邮件说我的图表没有在 Word 文档中显示任何内容,这也是有问题的。由于这些数字在我的 Mac 上看起来没问题,我无法确定这些数字是否正确,除非明确要求其他人查看包含这些数字的文档。
我尝试了一些我在网上找到的解决方法,例如:
save_plot("plot.pdf",p, useDingbats=F)
或者
save_plot("plot.pdf",p, device = cairo_pdf, fallback_resolution = 1200
但我仍然收到来自合作者的电子邮件,说他们看不到这些数字,并且在演示过程中我仍然会遇到一些尴尬的时刻,因为数字没有显示任何内容。
究竟如何才能在不丢失信息的情况下将我的数据保存为 pdf 格式?在这一点上,我不知道这个问题是否与在 R 中构建图形的方式有关,还是与 Microsoft Office 处理具有半透明的 pdf 图形的问题有关。事实上,我的研究网络中没有其他人遇到过这些问题。
仅供参考
> capabilities()
jpeg png tiff tcltk X11 aqua http/ftp
TRUE TRUE TRUE TRUE TRUE TRUE TRUE
sockets libxml fifo cledit iconv NLS profmem
TRUE TRUE TRUE TRUE TRUE TRUE TRUE
cairo ICU long.double libcurl
TRUE TRUE TRUE TRUE
【问题讨论】:
-
也许可以试试
ggplot2::ggsave()?但是,save_plot()在后台调用它,所以可能不会有太大的不同。或者通过cairo_ps()尝试使用具有光栅化透明度的 EPS。ggsave("plot.eps", p, device=cairo_ps, fallback_resolution = 1200)诚然,这不是一个理想的解决方案。 -
Mac 到 Android 的 Word 文档快速测试显示只有 EPS 版本有效。
-
你不能使用
svg并导出为 svg 而不是 pdf 吗?编辑:这个答案建议postscript与Word兼容:stackoverflow.com/questions/9555889/… -
另请参阅使用
graph2doc回答