登录
首页精彩阅读用R语言做Venn(韦恩)图
用R语言做Venn(韦恩)图
2017-04-21
收藏

R语言做Venn(韦恩)图

首先介绍一下韦恩图(英语:Venn diagram) ,也叫做文氏图、温氏图、范氏图,这都一个意思。它是数学学科中分支集合论(或者类的理论)的一支,在不太严格的意义下用来表示集合(或类)的一种草图。Veen图是用于展示在不同的事物群组(集合)之间的数学或逻辑联系,尤其适合用来表示集合(或)类之间的“大致关系”,这“大致关系”就意味着它是不精确的。它也常常被用来帮助推导(或理解推导过程)关于集合运算(或类运算)的一些规律。

学过基础数学的都知道,咱们在学习集合论的时候,绝对画过韦恩图。用韦恩图来表征分组彼此之间的关系,观察公共区域以及每个分组的单独部分的情况。在生态学以及微生态研究中会用Venn图来展示几个分组之间关系的结果。

那么用R语言应该怎样做呢?

需要加载的软件包:colorfulVennPlot

数据准备形式如下:

我们现在想知道A、B、C这3个样地之间关于共同有的OTU以及独自具有的OTU数量的关系,每个样地有3个重复样。且看用R怎样做出你想要的结果:

setwd("C:/Rwork")#设置工作目录,我的工作目录设置为C盘Rwork文件夹

library(colorfulVennPlot )#加载colorfulVennPlot软件包,当然前提是你先下载好colorfulVennPlot软件包,如果没有的话,执行以下命令来下载:

install.packages("colorfulVennPlot ")#这一步是为了下载好colorfulVennPlot软件包

a<-read.csv("practice2", header=T)#读取要分析的数据,将其命名为a

rownames(a)<-a[,1]#将上一步的a数据矩阵的第一列提取出来,因为是你要分析的部分,命名为rownames(a),也可以是其他的名字

a<-a[,-1]#a数据的第一列作为表格的行名

head(a)#这一步不是必须的,这一步的意思是查看你新命名的a数据的前6行

grouped <- data.frame(A=rowSums(otu[,c(4,5,7)]),B=rowSums(otu[,c(1,2,6)]),C=rowSums(otu[,c(3,8,9)]))#我要详细解释这一命令的含义:根据我们之前给的practice2这个表格数据,以及我们将第一列数据作为行名。我们可以看到第4,5,7列是A样地组;1,2,6列是B样地组;3,8,9列是C样地组;我们将重复样进行求和,最终表格合并为3列A,B,C;且将其命名为grouped名字。

grouped#你可以查看合并之后的表格grouped

vennData<-createVennData(grouped,type="count",Cols=c("A","B","C"),Splits=c(0.1,0.1,0.1))#根据上述的一系列条件进行venn计算,设置颜色,类型,标签等等。

vennData#查看venn计算之后的结果

plotVenn(vennData$x,vennData$labels)#venn出图结果

结果如下:


数据分析咨询请扫描二维码

客服在线
立即咨询