資源描述:
《利用R語(yǔ)言繪制韋恩圖.docx》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫(kù)。
1、利用R語(yǔ)言繪制韋恩圖(2012-12-1621:10:22)有關(guān)韋恩圖的說明請(qǐng)參見維基百科,此處就不再贅述了。R中提供了多個(gè)可用于繪制韋恩圖的軟件包,本文主要是介紹的是VennDiagram包。首先加載相應(yīng)的軟件包:library(VennDiagram)生成幾個(gè)集合并計(jì)算各個(gè)集合及其相互交集的大?。篈=1:150B=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<-lengt
2、h(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('
3、red','green'))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ù)ven
4、n.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è)集合都包含什么元素,而只知道集合及相互之
5、間交集的大小,這個(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=
6、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=L
7、ength_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è)、
8、第二個(gè)、第三個(gè)集合的大小。n12表示第一個(gè)與第二個(gè)集合的交集大小,n23、n13也是類似,n123指三個(gè)集合的交集大小。reverse則指是否對(duì)圖形進(jìn)行反轉(zhuǎn)。,