美文网首页R - tips
R语言绘制upset图

R语言绘制upset图

作者: 花生学生信 | 来源:发表于2023-04-05 19:06 被阅读0次

什么是Upset图?

对于集合的可视化,第一时间想到的都是韦恩图(venn diagram),一般集合不超过5个的时候,可视化效果还是不错的。但是一旦数据集增加,比如说五个的时候,你就很难从图中解读出想要的信息了。即便你把它画的很美观,但还是很难直观找到自己需要的信息。可视化的目的不是炫技,而是快速理解数据。而且韦恩图最大只支持7个数据集合。于是这时候就能体会出upset图的优势了。

输入数据:

将不同的集合放到一列

代码部分

library(UpSetR)
library(VennDiagram) 

#upset_list<-list(H7L1,H7L26,H7L27,H7L28,H7L29,H7L30,H7L31,H7L31,H7L32,H7L33)

upset_dat<-read.table("all.txt",sep ='\t')
upset_list <- list(upset_dat[,1], upset_dat[,2], upset_dat[,3], upset_dat[,4], upset_dat[,5], upset_dat[,6], upset_dat[,7],upset_dat[,8], upset_dat[,9])   # 制作Upset图搜所需要的列表文件


#names(upset_list) <- (c(H7L1,H7L26,H7L27,H7L28,H7L29,H7L30,H7L31,H7L31,H7L32,H7L33)) 
#names(upset_list) <- colnames(upset_dat[1:9])    # 把列名赋值给列表的key值


###列名
names(upset_list) <- c("HHZ","c2","c3","c4","c5","c6","c7","c8","c9")


upset(fromList(upset_list),  # fromList一个函数,用于将列表转换为与UpSetR兼容的数据形式。
      nsets = 100,     # 绘制的最大集合个数
      nintersects = 30, #绘制的最大交集个数,NA则全部绘制
      order.by = "freq", # 矩阵中的交点是如何排列的。 "freq"根据交集个数排序,"degree"根据
      keep.order = T, # 保持设置与使用sets参数输入的顺序一致。默认值是FALSE,它根据集合的大小排序。
      mb.ratio = c(0.6,0.4),   # 左侧和上方条形图的比例关系
      text.scale = 0.7 # 文字标签的大小
      )
结果图

相关文章

网友评论

    本文标题:R语言绘制upset图

    本文链接:https://www.haomeiwen.com/subject/ftcyddtx.html