可以旋转的3D韦恩图

导语

韦恩图是一种在科研文章中非常常见的图示法,比如在转录组数据中,常常会涉及到几千甚至上万的基因数量,有时为了研究需要,会分别获得两组或多组数据中具有某种特定功能或特点的基因集。通过绘制韦恩图,可以直观的显示出这些特定功能的基因集中,哪些是组间共有的基因,哪些是每组独有的基因[PMID: 32388965]。

韦恩图在文献中的应用
[PMID:32616488]Figure 1:失业和就业人群中CVD、PD、IC和RD的多病性。

 

[PMID: 32603365]Fig 2. 维恩图显示了四个比较组的交叉和非交叉DEG集:HT vs. TN; PTC w/ HT vs. TN; PTC w/o HT vs. TN; and mPTC vs. TN.
R包使用
01
VennDiagram包,2~5个数据集
install.packages("VennDiagram");library(VennDiagram)
venn_list=list(BLCA = file[which(file[,6]=="BLCA"),1],COAD = file[which(file[,6]=="COAD"),1], KICH= file[which(file[,6]=="KICH"),1],BRCA = file[which(file[,6]=="BRCA"),1],GBM = file[which(file[,6]=="GBM"),1])venn.diagram(venn_list,filename = 'venn.tiff',#输出文件main="venn_plot",main.col="red",#主标题及颜色fill = c('red', 'green', 'blue', 'yellow', 'gray'),#填充颜色alpha = 0.6,#填充颜色的透明度col = 'black',#边框颜色 cex = 1,#文本大小margin = 0.05#边缘距离)

02
gplots包,2~5个数据集
install.packages("gplots");library(gplots)tmp <- venn(venn_list,#show.plot=T,#是否显示图片#simplify=TRUE #不带空集合)attr(tmp, "intersections")

优点是能够输出各集合间特有/共有的元素,但图形过于单调。
03
Venn包,2~7个数据集
这个包厉害了,其他R包只支持5个集合,但它可以制作7元韦恩图
install.packages("venn");library(venn)par(mfrow=c(1,3))
venn(venn_list,ilabels = FALSE,#ellipse = TRUE,显示成椭圆zcolor = c('red', 'green', 'blue', 'yellow', 'gray'),opacity = 0.5,#指定的颜色的不透明度ilcs = 0.6,#交集标签大小sncs = 1,#集合标签的大小borders = TRUE,#显示交集边缘box = TRUE,#画出外面的正方形)

x <- as.data.frame(matrix(sample(0:1, 180, replace = TRUE), ncol = 6))y=c("1000000", "0100000", "0010000", "0001000", "0000100", "0000010", "0000001", "1111111")#“1000000”代表只在第一数据集中,“1111111”表示在所有数据集中。
venn(x,box = FALSE,col=rainbow(7)#边框颜色)venn(y,zcolor=rainbow(7),box = FALSE,borders=FALSE)

04
vennplot包,2D&3D韦恩图
(1) 3D韦恩图
install.packages("vennplot");library(vennplot)
disjoint.combinations = c(BLCA=length(gene1), COAD=length(gene2),KICH=length(gene3),BRCA=length(gene4),                          "BLCA&KICH"=30, "BLCA&BRCA"= 30,"COAD&BRCA"=7,"BLCA&COAD&KICH"=4,"BLCA&COAD"=14)ve = vennplot(disjoint.combinations, ThreeD = TRUE,#展示3D图形smooth=TRUE#在ThreeD = TRUE时使小球边缘光滑,多个集合旋转图形时显示窗口不稳定)

3D球形韦恩图,在R中的操作界面中是可以拖拉旋转的,但小编找了几个函数都没能保存,如果你有好的方法,欢迎大家在后台留言~

(2) 2D韦恩图

vennplot(disjoint.combinations = df, vars = c("BLCA","KICH","COAD","BRCA"),mar=c(1,2,1,2),#边缘距离#cols=c("red","yellow","blue","purple"),#可自定义颜色alpha=0.5#颜色透明度,[0,1])

小编总结
R语言这么强大的绘图功能你咋能不知道捏,希望这几个R包帮你绘制出“内外兼修”的高质量图片。
统计与绘图

Beeswarm图(列散点图或小提琴散点图)绘制方法

2020-8-28 1:14:04

统计与绘图

Perl版Circos-基础篇-安装

2020-8-28 1:18:35

加入Q群
0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
今日签到
有新私信 私信列表
搜索