使用Alpha通道将图像从R导出到字(透明度)

时间:2013-11-08 10:30:41

标签: r graphics export-to-word

我想将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)

2 个答案:

答案 0 :(得分:5)

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

典型的语法非常简单,例如:

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对象的统计输出。

enter image description here

这样可以生成基于Office矢量的原始DrawingML格式的完全可编辑的高质量Powerpoint图表,您也可以轻松复制和格式化。如果您愿意,可以粘贴为增强型图元文件,与从R导出的EMF不同,它也完全支持透明度。

答案 1 :(得分:2)

win.metafile的帮助下:

  

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

因此,您无法在图元文件中使用透明度。您可以尝试保存为png并提高输出的分辨率。