美文网首页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