美文网首页js css html
科研绘图——韦恩图

科研绘图——韦恩图

作者: 生信小鹏 | 来源:发表于2022-09-30 21:30 被阅读0次

    构建数据

    set.seed(20221001)
    genes <- paste("gene",1:1000,sep="")
    x <- list(
      A = sample(genes,300), 
      B = sample(genes,525), 
      C = sample(genes,440),
      D = sample(genes,350)
      )
    
    

    使用ggVennDiagram绘制韦恩图

    比较经典的韦恩图是使用venndiagram作图,但是缺点是不能使用pdf导出图形,对后期组图带来麻烦。因此使用基于ggplot2ggVennDiagrampackage就能方便导出pdf,以利于后期组图,绘制符合杂志社要求的图片。

    library(ggVennDiagram)
    
    

    绘图

    最基础的图形

    p1 <- ggVennDiagram(x)
    p1
    
    

    按照意向添加标签

    p1 <- ggVennDiagram(x, 
                        category.names = c("A1","B1","C1","D1")
                        )
    p1
    
    

    修改x轴显示的内容长度

    如果标签的长度比较长,例如

    p1 <- ggVennDiagram(x, 
                        category.names = c("a very long name","short name","name","another name"))
    p1
    
    

    需要进行如下调整

    p1 + scale_x_continuous(expand = expansion(mult = .3))
    
    

    改变标签的大小和颜色

    ggVennDiagram(x,
                  set_color = c("blue","black","red","green"))
    
    
    ggVennDiagram(x,
                  set_color = c("blue","black","red","green"),
                  set_size = 8)
    
    

    更改展示内容

    只展示数量

    ggVennDiagram(x, label = "count")
    
    

    只展示百分比

    ggVennDiagram(x, label = "percent")
    
    

    百分比的位数

    p <- ggVennDiagram(x, 
                       label_percent_digit = 2, label = "percent", 
                       edge_size = 0, edge_lty = "solid")
    p + theme(legend.position = 'none'
              )
    
    

    去掉标签的背景颜色

    有两种方法

    ggVennDiagram(x, 
                  label = "count",label_alpha = 0,
                  edge_lty = "solid", edge_size = 0)
    
    
    ggVennDiagram(x, 
                  label = "count",label_geom = "text",
                   edge_lty = "dashed", edge_size = 0)
    
    

    更改填充颜色和边框颜色

    library(ggplot2)
    p <- ggVennDiagram(x,
                       label_alpha = 0, label = "count", 
                       edge_size = 0.1, edge_lty = "solid")
    
    # Red Blue
    p + 
      scale_fill_distiller(palette = "PuOr", direction = -1) +
      scale_color_brewer(palette = "Set1")
    
    

    因为是基于ggplot2的包,所以颜色设置和ggplot2是一致的,Palettes可选择的颜色如下

    Diverging
    BrBG, PiYG, PRGn, PuOr, RdBu, RdGy, RdYlBu, RdYlGn, Spectral

    Qualitative
    Accent, Dark2, Paired, Pastel1, Pastel2, Set1, Set2, Set3

    Sequential
    Blues, BuGn, BuPu, GnBu, Greens, Greys, Oranges, OrRd, PuBu, PuBuGn, PuRd, Purples, RdPu, Reds, YlGn, YlGnBu, YlOrBr, YlOrRd

    direction设置颜色的方向,只有1和-1两个选项

    RColorBrewer::display.brewer.all()
    
    

    添加标题和副标题

    既然是基于ggplot2的package,那么很多内容就是共通的

    library(ggplot2)
    p <- ggVennDiagram(x,
                       label_alpha = 0, label = "count", 
                       edge_size = 0.1, edge_lty = "solid")
    
    # Red Blue
    p + 
      scale_fill_distiller(palette = "PuOr", direction = -1) +
      scale_color_brewer(palette = "Set1") +
      labs(title = "Venn Diagram",
           subtitle = "`ggVennDiagram`",
           caption = Sys.Date())
    
    

    参考来源

    https://mirror.linux.duke.edu/cran/web/packages/ggVennDiagram/vignettes/using-ggVennDiagram.html
    要养成每次引用后,及时添加参考文献的来源,不然时间长了,技术来源就不清楚了

    相关文章

      网友评论

        本文标题:科研绘图——韦恩图

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