最近冲浪的时候看到ggVennDiagram的开发者在一篇文章中展示了多个venn图绘制R包,这里小编就给大家简单分享一下。
一、所需R包下载
可以使用以下代码安装相应R包:
# cran来源R包安装
cran_packages <- c("VennDiagram,"venn",
"nVennR", "eulerr", "RVenn","ggVennDiagram")
install.packages(cran_packages)
# GitHub来源R包安装
if (!requireNamespace("ggvenn")){
remotes::install_github("yanlinlin82/ggvenn")
}
二、数据生成
绘制venn图需要提供的数据类型为列表,分别储存着不同集合的元素向量。为了方便展示,下面随机生成了示例数据,大家自己做的时候根据自己的数据准备。
# 生成gene1到gene1000的向量genes
genes <- paste0("gene",1:1000)
set.seed(20210302) # 设定随机数种子方便结果复现
# 随机采样生成包含A、B、C、D四个集合的list
gene_list <- list(A = sample(genes,100),
B = sample(genes,200),
C = sample(genes,300),
D = sample(genes,200))
library(dplyr)
▲ gene_list 截图如上
三、各类R包简述
1.VennDiagram包
library(VennDiagram)
VennDiagram <- venn.diagram(x = gene_list, filename = NULL)
cowplot::plot_grid(VennDiagram)
2.venn包
library(venn)
venn(gene_list)
3.nVennR包
library(nVennR)
myNV <- plotVenn(gene_list, nCycles = 10000, outFile = "venn.svg") # 增大nCycles可以有效避免过分重叠,outFile直接指定输出文件名称
4.eulerr包
library(eulerr)
venn_plot <- venn(gene_list)
plot(venn_plot)
euler_plot <- euler(gene_list)
plot(euler_plot)
5.RVenn包
library(RVenn)
ggvenn(Venn(gene_list[1:3])) # 仅绘制前三个list
6.ggVennDiagram包
library(ggVennDiagram)
ggVennDiagram(gene_list)
7.ggvenn包
library(ggvenn)
ggvenn(gene_list)
简单分享到这
更多内容可以参考以下链接:
https://venn.bio-spring.top/