使用VennDiagram包绘制韦恩图

维恩图,也叫文氏图,用于显示元素集合重叠区域的图示。最简单的方法是用PPT画几个圆圈,然后标上数字。R中的VennDiagram包最多可以画5组数据的韦恩图,且图的质量可以达到发表的要求。
VennDiagram文章发表在BMC Bioinformatics杂志上,下图就是文章中的插图。
VennDiagram

安装VennDiagram包

install.packages("VennDiagram")

载入VennDiagram包

library(VennDiagram)

绘制韦恩图

list1 <- c(1,2,3,4,5,6,7,8,9,10)
list2 <- c(6,7,8,9,10,11,12,13,14,15)
list3 <- c(1,2,3,4,5,11,12,13,14,15)
venn.diagram(list(A=list1,B=list2,C=list3), "figure.tiff")

VennDiagram_figure

venn.diagram()函数最基本的两个参数就是输入和输出,输入是一个包含每组数据的list,输出指定文件名即可。venn.diagram()函数是输入是每组数据的详单,有时候我们并不知道每组数据具体元素,只是知道各组数据之间有多少交集,那该怎么办呢?

VennDiagram包提供了draw.single.venn()、draw.pairwise.venn()、draw.triple.venn()、draw.quad.venn()、draw.quintuple.venn()函数,分别绘制1-5组数据的韦恩图。
还是以上面的例子,用draw.triple.venn()作图。

draw.triple.venn(area1=10,area2=10,area3=10,n12=5,n23=5,n13=5,n123=0,category=c("A","B","C"))

area1,area2,area3表示三组数据中元素的数量,n12,n23,n13,n123表示各组数据之间交集的数量,category指定每组数据的名称。

如果要把图画得好看点,可以添加其他的修饰参数。?VennDiagram查看帮助文档。

一个可以在线绘制韦恩图的网址:
http://bioinformatics.psb.ugent.be/webtools/Venn/