matlab画韦恩图,用R语言绘制韦恩图

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_B

Length_C

Length_AB

Length_BC

Length_AC

Length_ABC

利用通用函数venn.diagram绘制两个集合的韦恩图:T

,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

,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)

18a005a6160432614ae73401f3a54212.png

从上面的两个例子可以看出函数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则指是否对图形进行反转。

原文来自:http://liuwei441005.blog.163.com/blog/static/135705811201310152376766/

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值