首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >可以旋转的3D韦恩图你见过吗?

可以旋转的3D韦恩图你见过吗?

作者头像
百味科研芝士
发布2020-10-09 14:47:41
1.2K0
发布2020-10-09 14:47:41
举报
文章被收录于专栏:百味科研芝士百味科研芝士

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

我们总结过几款简单易操作的在线韦恩图绘图工具[0代码绘制文氏图],有很多小伙伴来私信讨论,今天我们再来分享几个R包。

韦恩图在文献中的应用

[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包帮你绘制出“内外兼修”的高质量图片。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-09-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 百味科研芝士 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
图像处理
图像处理基于腾讯云深度学习等人工智能技术,提供综合性的图像优化处理服务,包括图像质量评估、图像清晰度增强、图像智能裁剪等。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档