R语言:upset集合图

作者: 胡童远 | 来源:发表于2020-09-09 10:40 被阅读0次

    导读

    venn可以分析不同数据集的交集,另外使用R语言UpSet函数包upset函数绘制集合图可以更清晰的展示不同数据集的交集情况。

    下载,加载包

    install.packages("UpSetR")
    library(UpSetR)
    

    一、输入数据

    input = list(
        set1 = paste(rep("word_" , 10) , sample(c(1:100) , 10 , replace=F) , sep=""),
        set2 = paste(rep("word_" , 20) , sample(c(1:100) , 20 , replace=F) , sep=""),
        set3 = paste(rep("word_" , 10) , sample(c(1:100) , 10 , replace=F) , sep=""),
        set4 = paste(rep("word_" , 40) , sample(c(1:100) , 40 , replace=F) , sep=""),
        set5 = paste(rep("word_" , 50) , sample(c(1:100) , 50 , replace=F) , sep=""))
    

    二、集合图-基础

    upset(fromList(input))
    

    三、集合图-参数调整

    1 修改排序、坐标系、标签等参数

    upset(fromList(input), 
          order.by = "freq",  # 主坐标系排序
          number.angles = 0,  # 柱标倾角
          point.size = 3,  # 点大小
          line.size = 1,  # 线粗细
          mainbar.y.label = "Count of Intersection",  # y 标题
          sets.x.label = "Datasets Size",  # x 标题
          text.scale = c(1.5, 1, 1.5, 1, 1, 1),
          # y 标题 大小
          # y 刻度标签 大小
          # dataset size 标题 大小
          # dataset size 刻度标签 大小
          # dataset size 分类标签 大小
          # 柱数字 大小
         )
    

    2 按数据集排序

    upset(fromList(input), 
          order.by = "freq",  # 主坐标系排序
          number.angles = 0,  # 柱标倾角
          point.size = 3,  # 点大小
          line.size = 1,  # 线粗细
          mainbar.y.label = "Count of Intersection",  # y 标题
          sets.x.label = "Datasets Size",  # x 标题
          text.scale = c(1.5, 1, 1.5, 1, 1, 1),
          # y 标题 大小
          # y 刻度标签 大小
          # dataset size 标题 大小
          # dataset size 刻度标签 大小
          # dataset size 分类标签 大小
          # 柱数字 大小
          group.by = "sets",  # 按dataset排序
         )
    

    四、指定交集上色

    upset(fromList(input), 
          order.by = "freq",  # 主坐标系排序
          number.angles = 0,  # 柱标倾角
          point.size = 3,  # 点大小
          line.size = 1,  # 线粗细
          mainbar.y.label = "Count of Intersection",  # y 标题
          sets.x.label = "Datasets Size",  # x 标题
          text.scale = c(1.5, 1, 1.5, 1, 1, 1),
          # y 标题 大小
          # y 刻度标签 大小
          # dataset size 标题 大小
          # dataset size 刻度标签 大小
          # dataset size 分类标签 大小
          # 柱数字 大小
          group.by = "sets",  # 按dataset排序
          queries = list(
              list(query=intersects, params=list("set4", "set5"), color="red", active=T),
              list(query=intersects, params=list("set2", "set5"), color="blue", active=T))
          # active T 柱染色 F 柱上标记
         )
    

    参考:
    https://www.jianshu.com/p/324aae3d5ea4
    https://zhuanlan.zhihu.com/p/35303590
    https://mp.weixin.qq.com/s/y4aDZoSOzjWERNAO6CcNbw

    相关文章

      网友评论

        本文标题:R语言:upset集合图

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