我可以生成并保存.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
答案 0 :(得分:2)
问题与R或RStudio无关。
问题与Mac OS X上Microsoft Word文档中嵌入式图像的创建和转换过程以及Windows中Microsoft Word如何呈现文档有关。
为什么?本质上,PDF是Apple绘图系统Quartz的本地组件。 Mac OS X Quartz的内部成像模型与PDF对象图具有很好的相关性,从而易于显示和处理pdf嵌入式图像。
A,Windows操作系统不是这种情况。 [这不仅仅是批判,只是观察。] pdf引擎不包含在Windows中,它是一个附加组件。因此,Mac OS X Word文档将无法在Windows的Microsoft Word中正确呈现。除此之外,似乎没有可用的选项来具有到PDF的OLE链接。
示例:
在Mac OS X中,可以简单地将pdf图像拖放到Word文档中。显示的图像将显示为:
现在,如果我们使用Windows 10 PC并打开文档,我们将看到:
建议的解决方法是将图像另存为.png或.jpg并将其插入到word文档中。
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)
save_plot("plot.png",p)
save_plot("plot.jpg",p)
Windows 10上的Microsoft Word
考虑的另一种选择是使用
ggsave("plot.eps", p, device=cairo_ps, fallback_resolution = 1200)
这确实有效,但是,在Windows 10的渲染图像中发现了条纹。
这些条纹似乎与发生的隐式对话有关,因为安全限制,Word将EPS图像转换为EMF格式。
因此,您可以插入EPS图像,但是它似乎已转换为EMF以阻止EPS Embedded脚本攻击向量。
示例:
答案 1 :(得分:0)
输出文件必须是PDF吗?您是否不仅可以将图形直接另存为支持透明度的其他文件类型(例如.png),然后将其插入演示文稿或Word文件中?
在使用Word插入PDF图像之前,无论是否透明,都存在格式问题。