Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R:我的Mac电脑上只显示半透明度_R_Pdf_Ms Word_Alpha_Cairo - Fatal编程技术网

R:我的Mac电脑上只显示半透明度

R:我的Mac电脑上只显示半透明度,r,pdf,ms-word,alpha,cairo,R,Pdf,Ms Word,Alpha,Cairo,我可以在.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) 或 但我仍然收到合作者的电子邮件,说他们看不到这些数字,并且在演讲中仍然会遇到一些尴尬的时刻,因为数字

我可以在.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)

但我仍然收到合作者的电子邮件,说他们看不到这些数字,并且在演讲中仍然会遇到一些尴尬的时刻,因为数字没有显示任何东西,所以我无法表达我的观点

我究竟怎样才能在不丢失信息的情况下将我的数据保存在pdf格式?在这一点上,我不知道这个问题是否与R中数字的构造方式有关,或者与Microsoft Office处理半透明pdf数字的问题有关。事实上,在我的研究网络中,我没有看到其他人经历过这些问题

供参考


输出文件必须是PDF格式吗?您能否将图形直接保存为支持透明度的不同文件类型(如.png)并将其插入演示文稿或Word文件中


我以前在Word中插入PDF图像时遇到过格式问题,无论是否具有透明度。

该问题与R或RStudio无关

问题说明: 该问题与Mac OS X上Microsoft Word文档中嵌入图像的创建和转换过程以及Windows上Microsoft Word如何呈现文档有关

为什么??从本质上讲,PDF是苹果绘图系统Quartz的原生组件。Mac OS X Quartz的内部成像模型与PDF对象图具有良好的相关性,使得显示和操作PDF嵌入图像变得容易

唉,Windows操作系统并非如此。[这不是批评,只是观察。]Windows中不包含pdf引擎,它是一个附加组件。因此,Mac OS X Word文档将无法在Microsoft Word for Windows中正确呈现。除此之外,似乎没有可用的选项来提供指向PDF的OLE链接

例如:

在MacOSX中,可以简单地将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上渲染的图像中发现了条纹

由于安全攻击向量,EPS隐式转换为EMF: 条纹似乎与发生的隐式对话有关,即由于安全限制,将EPS图像转换为EMF格式

因此,您可以插入EPS图像,但它似乎被转换为EMF以阻止EPS嵌入脚本攻击向量

例如:


1我喜欢矢量图形的外观,2份期刊明确要求矢量格式的图形。我可以在最初阶段提交手稿,文档中嵌入.png,最后阶段单独包含pdf版本。但是,如果.png数字的质量足够高,则会使文档太重,因此更难处理。不过,我对其他工作流持开放态度。也许可以尝试ggplot2::ggsave?但是,save_plot称之为幕后操纵,因此可能没有多大区别。或者尝试通过cairo_ps.ggsaveplot.EPS,p,device=cairo_ps,fallback_resolution=1200使用光栅化透明度的EPS,不可否认,这不是一个理想的解决方案。在Mac到Android上快速测试Word文档表明,只有EPS版本可以工作。你不能使用svg并导出到svg而不是pdf吗?编辑:这个答案暗示了postscript与Word的兼容性:另请参见使用图形的答案。这是我在一些测试后怀疑的。谢谢如果我将数字保存在.eps中并嵌入到Word文档中,是否会遇到同样的问题?ggsaveplot.eps,p,设备=cairo\u ps,回退\u分辨率=1200@fede_luppi微软Word似乎执行EPS到EMF格式的隐式转换,以解决EPS嵌入式脚本攻击向量。请参阅更新的答案。当心。
save_plot("plot.pdf",p, device = cairo_pdf, fallback_resolution = 1200
> 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  
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)
ggsave("plot.eps", p, device=cairo_ps, fallback_resolution = 1200)