美文网首页基本图形绘制R语言可视化之美生信绘图
韦恩图UpSetR;比传统韦恩图更加清晰

韦恩图UpSetR;比传统韦恩图更加清晰

作者: 被格格巫抓到的蓝精灵 | 来源:发表于2021-05-22 10:23 被阅读0次

    最近刚好用到韦恩图,但是由于term比较多,VennDiagram的可视化效果并不好。然后再一个帖子里看到了UpSetR和Y叔的改进版本upsetplot。

    UpSetR

    一、一般情况下,我喜欢用最直接的方式输入

    这种方式可以很方便的选择自己想展示的任意几个cluster之间的交集。

    colorPalette<-c("#e41a1c","#377eb8","#4daf4a","9ecae1","#6baed6","#4292c6")
    library(UpSetR)
    input <- c(
      'Type 1'=  578,
      'Type 2' =  284,
      'Type 3' = 488,
      'Type 1&Type 3'  =205,
      'Type 2&Type 3'  =89,
      'Type 1&Type 2&Type 3'  =20)
    
    data <- fromExpression(input)
    upset(data, nsets = 9,  sets = c('Type 1', 'Type 2' , 'Type 3'),
                keep.order = TRUE,matrix.color ="#b35806", main.bar.color = colorPalette,
                sets.bar.color = c("#e41a1c","#377eb8","#4daf4a"), 
                point.size = 4,  line.size = 1.3,  mainbar.y.label = "IntersectionSize", 
                sets.x.label = "", mb.ratio = c(0.60, 0.40), text.scale = c(2, 2, 0.5, 0.5,2, 3))
    
    可以根据参数改变每一个bar的颜色

    二、使用table方式输入

    当数据量较大,或者需要更复杂的展示的时候,可以使用table方式输入。

    我们来看一下系统提供是movies数据

    movies <- read.csv(system.file("extdata","movies.csv",package = "UpSetR"), header = TRUE, sep=";")
    View(movies)
    
    类似的数据类型

    类似的格式的数据可以使用tidyr包中的pivot_wider函数生成,这个包中有很多函数对于数据变形很好用。

    upset(movies, nsets = 7, nintersects = 30, mb.ratio = c(0.5, 0.5),
          order.by = c("freq", "degree"), decreasing = c(TRUE,FALSE))
    
    movies

    其他更加复杂的参数可以自行探索。

    相关文章

      网友评论

        本文标题:韦恩图UpSetR;比传统韦恩图更加清晰

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