韦恩图——你学会了吗?

1.概念

        韦恩图(Venn diagram),也叫温氏图、维恩图、范氏图,用于显示元素集合重叠区域的图表(见图4-9-1)。韦恩图是关系型图表,通过图形与图形之间的层叠关系,来表示集合与集合之间的相交关系。每个集合通常以一个圆圈表示。每个集合都是一组具有共同之处的物件或数据。当多个圆圈(集)相互重叠时,称为交集(intersection),里面的数据同时具有重叠集中的所有属性。

一个完整的韦恩图包含以下构成元素:①若干个圆表示集合;②若干个圆的层叠部分表示公有集合;③内部文本标签。一般来说,超过5个集合的场景,不适合使用韦恩图。

适合场景1:表示两个集合相交关系,有一个集合A,有一个集合B,相交集合为C。有两个维度数据,其中,分类数据映射集合名,关系数据映射集合关系。
适合场景2:表示3个集合相交关系,有集合A、B、C。有两个维度数据,其中,分类数据映射集合名,关系数据映射集合关系。
适合场景3:表示4个集合相交关系,有集合A、B、C、D。有两个维度数据,其中,分类数据映射集合名,关系数据映射集合关系。

绘制韦恩图
R中VennDiagram包的Venn.Diagram()函数、gplots包的Venn()函数、limma包VennDiagram()函数、Venneuler包的Venneuler()函数都可以绘制韦恩图,但是以VennDiagram包的Venn.Diagram()函数绘制的韦恩图效果最佳,具体实现代码如下所示。

library(VennDiagram)
library(RColorBrewer)
venn.diagram(list(B = 1:1800, A = 1571:2020,c=500:1100),fill = c(brewer.pal(7,"Set1")[1:3]),
 alpha = c(0.5, 0.5,0.5), cex = 2,
cat.cex=3,cat.fontface = 4,lty =2, fontfamily =3, 
 resolution =300, filename = "trial2.tiff")

2.示例代码和效果图

library(tidyverse)
library(ggvenn)

setwd('G:\\rwork')
group <- read.delim("group.xls")

df <- read.delim("otu.xls",check.names=F) %>% 
  as_tibble() %>% pivot_longer(-ASV) %>%
  filter(value !=0) %>% rename(sample=name)

#共4个处理,每个处理三个重复,求平均值,
A <- df %>% filter(sample=="A_1")
B <- df %>% filter(sample=="B_1")
C <- df %>% filter(sample=="C_1") 
D <- df %>% filter(sample=="D_1") 

list(E=E$ASV,O=O$ASV,g=g$ASV,b=b$ASV) %>% 
ggvenn(show_percentage = T,show_elements = F,label_sep = ",",
       digits = 1,stroke_color = "white",stroke_alpha=1,
     #  stroke_linetype="dashed",
       fill_color = c("#E41A1C", "#1E90FF", "#FF8C00",
                      "#4DAF4A"),
       set_name_color = c("#E41A1C", "#1E90FF","#FF8C00","#4DAF4A"))
ggsave("venn.pdf",width=10,height=8)
ggsave("venn.png",width=10,height=8)
ggsave("venn.pptx",width=10,height=8)

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值