2012-08-23 42 views
1

我想让我的维恩图作为PNG文件。下面是它的外观时,不输出到文件:奇怪的PNG图片时,试图输出一个维恩图PNG文件使用venn()从gplots

library(gplots) 
> x <- c("X","B") 
> v <- c("X","A") 
venn(list(x,v)) 

然后我得到这个:http://postimage.org/image/d3nbyrp5f/277b50b3/,看起来OK。

但是这样做:

library(gplots) 
> x <- c("X","B") 
> v <- c("X","A") 
> png(filename="test10.png") 
> venn(list(x,v)) 
> dev.off() 

给出了这样的:http://postimage.org/image/tpdywxxrp/a148b2db/,正如你所看到的PNG文件不显示正确的维恩图,圆圈是重叠的,这样一个循环是在顶部的另一个。 ..

任何方法来克服这种奇怪的行为?

编辑:

它是由加载cairoDevice解决:

library(cairoDevice) 

,然后使用:

Cairo_png(filename="test.png") 

以输出维恩图正确地与文氏()。

+0

你不说您正在使用什么操作系统,但这种行为也发生在Mac上。它不会发生pdf()输出设备。我通常通过在Preview.app中打开我的pdf并保存为png来创建png文件。 –

+0

@DWin查看解决方案。 – Bebe

回答

3

这可能是一个透明度问题,您可以为维恩图使用不同的工具,也可以使用支持透明度的图形设备,我相信开罗设备允许您创建png文件并遵守透明度。

+0

不适用于'Cairo'包中的'CairoPNG'函数 – dickoa

+0

@dickoa它应该与cairoDevice – Bebe

3

您必须将bg参数(在png函数中)设置为NA(透明),默认背景为白色。

library(gplots) 
x <- c("X","B") 
v <- c("X","A") 
png("bgNA.png", bg = NA) 
venn(list(x,v)) 
dev.off() 

enter image description here

+0

一起工作啊,看到你的回复太晚了!这也可以,谢谢! – Bebe

+0

但我更喜欢下面的解决方案,然后我也获得白色背景。 – Bebe

+0

@Bebe我明白了......我只是用'cairoDevice'试过,它工作正常(我通常使用'Cairo'包,它不适用于这个包) – dickoa