|
R中提供了多個(gè)可用于繪制韋恩圖的軟件包,本文主要是介紹的是VennDiagram包。 安裝VennDiagram包: install.packages("VennDiagram")
首先加載相應(yīng)的軟件包: library(VennDiagram) 生成幾個(gè)集合并計(jì)算各個(gè)集合及其相互交集的大?。?/p> A = 1:150 B = c(121:170,300:320) C = c(20:40,141:200) Length_A<-length(A) Length_B<-length(B) Length_C<-length(C) Length_AB<-length(intersect(A,B)) Length_BC<-length(intersect(B,C)) Length_AC<-length(intersect(A,C)) Length_ABC<-length(intersect(intersect(A,B),C)) 利用通用函數(shù)venn.diagram繪制兩個(gè)集合的韋恩圖: T<-venn.diagram(list(A=A,B=B),filename=NULL
,lwd=1,lty=2
,col=c("red","green"),fill=c("red","green")
,cat.col=c("red","green")
,rotation.degree=90)
grid.draw(T)
其中,參數(shù)filename指定用于保存圖形文件的文件名,如果希望在當(dāng)前的圖形窗口中看到繪制的韋恩圖,則filename必須為空;若希望將繪制的圖 形直接保存為某文件,則直接使用venn.diagram(...,filename="*")即可完成。參數(shù)fill表示各個(gè)集合對(duì)應(yīng)的圓的填充顏 色,col表示對(duì)應(yīng)的圓周的顏色,而cat.col則表示集合名稱的顯示顏色。lwd用于設(shè)定圓弧的寬度,lty用于設(shè)定圓弧的線型。參數(shù) rotation.degree則可用于調(diào)整圖形的旋轉(zhuǎn)角度。 利用函數(shù)venn.diagram繪制三個(gè)集合的韋恩圖: T<-venn.diagram(list(A=A,B=B,C=C),filename=NULL
,lwd=1,lty=2,col=c("red","green","blue")
,fill=c("red","green","blue")
,cat.col=c("red","green","blue")
,reverse=TRUE)
grid.draw(T)
從上面的兩個(gè)例子可以看出函數(shù)venn.diagram是利用集合作為參數(shù)繪制韋恩圖的,但是有時(shí)候我們并不知道各個(gè)集合都包含什么元素,而只知道集合及 相互之間交集的大小,這個(gè)時(shí)候如何繪制韋恩圖呢?包VennDiagram還給我們提供了另外幾個(gè)函數(shù):繪制兩個(gè)集合的韋恩圖的 draw.pairwise.venn,三個(gè)集合的draw.triple.venn,四個(gè)、五個(gè)集合的draw.quad.venn、 draw.quintuple.venn。我們此處只介紹前兩個(gè)函數(shù)的用法。 利用函數(shù)draw.pairwise.venn繪制兩個(gè)集合的韋恩圖: draw.pairwise.venn(area1=Length_A,area2=Length_B,cross.area=Length_AB
,category=c("A","B"),lwd=rep(1,1),lty=rep(2,2)
,col=c("red","green"),fill=c("red","green")
,cat.col=c("red","green")
,rotation.degree=90)
其中area1指第一個(gè)集合的大小,area2指第二個(gè)集合的大小,而cross.area則指交集的大小。參數(shù)category用于指定集合名稱。其余參數(shù)與venn.diagram相同。 利用函數(shù)draw.triple.venn繪制三個(gè)集合的韋恩圖: draw.triple.venn(area1=Length_A, area2=Length_B, area3=Length_C
,n12=Length_AB, n23=Length_BC, n13=Length_AC, n123=Length_ABC
,category = c("A","B","C")
,col=c("red","green","blue"),fill=c("red","green","blue")
,cat.col=c("red","green","blue")
,reverse = FALSE)
同draw.pairwise.venn類似,area1、area2、area3分別指第一個(gè)、第二個(gè)、第三個(gè)集合的大小。n12表示第一個(gè)與第二個(gè)集合的交集大小,n23、n13也是類似,n123指三個(gè)集合的交集大小。reverse則指是否對(duì)圖形進(jìn)行反轉(zhuǎn)。 原文來(lái)自:http://liuwei441005.blog.163.com/blog/static/135705811201310152376766/ 生物信息學(xué)交流論壇 http://bbs./forum-76-1.html |
|
|