7

我想将 R 生成的图形导出到 Word。该图包含透明度(alpha 通道)。下面是一些示例代码 - 导出到 Windows 元文件时会引发错误:

警告消息:在 plot.xy(xy, type, ...) 中:此设备不支持半透明:每页仅报告一次

导出为 SVG 会产生所需的结果,但 MS Office 不支持这种图像格式。有没有解决的办法?在保留 Alpha 通道的同时,我可以使用什么图像类型?PNG 是可能的,但这不会产生非常清晰的图形 - 它会丢失清晰的矢量化图像。

# Get some colours with transparency (alpha = 0.6)
col.dot <- rainbow(5, alpha = .6)

# Save to svg file - OK
svg("test_fig.svg")
plot(1:5,col = col.dot, pch=15)
dev.off()

# Save to wmf - warning "semi-transparency is not supported on this device..."
win.metafile("test_fig.wmf")
plot(1:5,col = col.dot, pch=15)
dev.off()

我应该补充一下,这是在 Windows 系统上(Windows 8 64 位,带有 Word 2013)

4

2 回答 2

6

我刚刚制作了一个新包export,可以轻松地将 R 图表导出到 Office(Word、Powerpoint),请参阅 https://cran.r-project.org/web/packages/export/index.html和演示https://github。 com/tomwenseleers/出口

典型的语法很简单,例如:

install.packages("export")
library(export)
library(ggplot2)
qplot(Sepal.Length, Petal.Length, data = iris, color = Species, 
      size = Petal.Width, alpha = I(0.7))     
graph2ppt(file="ggplot2_plot.pptx", width=6, height=5) 

输出是矢量格式,因此在您在 Powerpoint 中取消组合图表后完全可编辑。您还可以使用它导出到 Word、Excel、Latex 或 HTML,还可以使用它导出各种 R stats 对象的统计输出。

在此处输入图像描述

这会产生一个完全可编辑、高质量的 Powerpoint 图表,采用原生 Office 基于矢量的 DrawingML 格式,如果您愿意,您还可以轻松地将其复制和粘贴为增强的图元文件,并且与从 R 导出的 EMF 不同,它还完全支持透明度。

于 2015-06-26T17:01:16.227 回答
2

在以下帮助下win.metafile

屏幕设备上支持线条、填充和文本的半透明颜色。这些用于保存(从“文件”菜单)到 PDF、PNG、BMP、JPEG 和 TIFF,但如果保存到 Metafile 和 PostScript,将被忽略。

所以你不能在元文件中使用透明度。您可以尝试另存为 png 并增加输出的分辨率。

于 2013-12-28T04:39:17.447 回答