查看原文
其他

R可视化——Venn图绘制及交集元素导出

王志山 科研后花园 2023-09-08

韦恩图(Venn)是一种用于展示各样本之间共有或特有元素数量的图形。今天,小编就结合R语言中的Venn包和VennDiagram包给大家展示一下如何绘制Venn图并导出其中的交集元素!

安装并加载R包

rm(list=ls())#clear Global Environmentsetwd('D:\\桌面\\Venn')#设置工作路径
#安装包#install.packages("venn")# install.packages("VennDiagram")#加载R包library(VennDiagram) library (venn)

加载并处理数据

1、加载数据

#加载数据,为OTU水平的丰度表data <- read.table(file="otu.txt",sep="\t",header=T,check.names=FALSE,row.names = 1)

2、处理数据

#组内合并df <- data.frame(A=rowSums(data[,c(1:3)]), B=rowSums(data[,c(4:6)]), C=rowSums(data[,c(7:9)]), D=rowSums(data[,c(10:12)]))head(df)#创建空列表df1 <- list()#获取每个样本(组)中所有的OTUfor (i in 1:length(colnames(df))){ group<- colnames(df)[i] df1[[group]] <- rownames(df)[which(df[,i]!= 0)]}

绘图

#Venn包绘制venn(df1, #数据 zcolor=c('red','yellow','blue','green'),#颜色设置,可选择自带的“style”或者无色‘bw’ opacity = 0.5,#颜色透明度 box=F,#边框去除 sncs=1.5,#组名字体大小 ilcs=0.8)#图片中数字大小

提取交集元素

使用VennDiagram包中的get.venn.partitions函数查看并导出交集结果:
df_inter <- get.venn.partitions(df1)for (i in 1:nrow(df_inter)) df_inter[i,'values'] <- paste(df_inter[[i,'..values..']], collapse = ', ')df_inter[-c(5, 6)]write.table(df_inter, 'df_Venn.txt', row.names = FALSE, sep = '\t', quote = FALSE)


参考:https://www.jianshu.com/p/b5a4c40c3a33

爱我请给我好看!

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存