登录  
 加关注
查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

阿飞与安达

每天进步一点点!

 
 
 

日志

 
 

用R语言绘制韦恩图  

2013-11-15 14:37:06|  分类: R |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
R中提供了多个可用于绘制韦恩图的软件包,本文主要是介绍的是VennDiagram包。
安装VennDiagram包:
install.packages("
VennDiagram")
首先加载相应的软件包:
library(VennDiagram)
生成几个集合并计算各个集合及其相互交集的大小:
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))
利用通用函数venn.diagram绘制两个集合的韦恩图:
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)
其中,参数filename指定用于保存图形文件的文件名,如果希望在当前的图形窗口中看到绘制的韦恩图,则filename必须为空;若希望将绘制的图 形直接保存为某文件,则直接使用venn.diagram(...,filename='*')即可完成。参数fill表示各个集合对应的圆的填充颜 色,col表示对应的圆周的颜色,而cat.col则表示集合名称的显示颜色。lwd用于设定圆弧的宽度,lty用于设定圆弧的线型。参数 rotation.degree则可用于调整图形的旋转角度。
利用函数venn.diagram绘制三个集合的韦恩图:
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)
用R语言绘制韦恩图 - 阿飞与安达 - 阿飞与安达
 
从上面的两个例子可以看出函数venn.diagram是利用集合作为参数绘制韦恩图的,但是有时候我们并不知道各个集合都包含什么元素,而只知道集合及 相互之间交集的大小,这个时候如何绘制韦恩图呢?包VennDiagram还给我们提供了另外几个函数:绘制两个集合的韦恩图的 draw.pairwise.venn,三个集合的draw.triple.venn,四个、五个集合的draw.quad.venn、 draw.quintuple.venn。我们此处只介绍前两个函数的用法。
利用函数draw.pairwise.venn绘制两个集合的韦恩图:
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指第一个集合的大小,area2指第二个集合的大小,而cross.area则指交集的大小。参数category用于指定集合名称。其余参数与venn.diagram相同。
利用函数draw.triple.venn绘制三个集合的韦恩图:
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分别指第一个、第二个、第三个集合的大小。n12表示第一个与第二个集合的交集大小,n23、n13也是类似,n123指三个集合的交集大小。reverse则指是否对图形进行反转。
  评论这张
 
阅读(3828)| 评论(0)

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018