美文网首页R语言学习
R语言可视化(九):韦恩图绘制

R语言可视化(九):韦恩图绘制

作者: Davey1220 | 来源:发表于2020-08-07 22:18 被阅读0次

    09.韦恩图绘制


    清除当前环境中的变量

    rm(list=ls())
    

    设置工作目录

    setwd("C:/Users/Dell/Desktop/R_Plots/09venndiagram/")
    

    gplots包绘制韦恩图

    library(gplots)
    ## 
    ## Attaching package: 'gplots'
    ## The following object is masked from 'package:stats':
    ## 
    ##     lowess
    
    data <- read.table("demo1_venn.txt", header = T, sep = "\t")
    head(data)
    ##      Set1   Set2  Set3  Set4   Set5
    ## 1   ZMIZ1  ADCY5  TNS1  TNS1   TNS1
    ## 2    TNS1  ACTN4 ZMIZ1 ZMIZ1  ZMIZ1
    ## 3   CASZ1 SORBS1  RXRA  RXRA TSPAN9
    ## 4    NFIC   TNS1 AHDC1 NCOR2   MIDN
    ## 5 CACNA1C  ZMIZ1 ACTN4  MIDN  NCOR2
    ## 6   AHDC1  RBM20  MIDN AHDC1  AHDC1
    attach(data)
    
    # 绘制二维韦恩图
    venn(data = list(Set1,Set2))
    
    image.png
    # 绘制三维韦恩图
    venn(data = list(Set1,Set2,Set3))
    
    image.png
    # 绘制四维韦恩图
    venn(data = list(Set1,Set2,Set3,Set4))
    
    image.png
    # 绘制五维韦恩图
    venn(data = list(Set1,Set2,Set3,Set4,Set5))
    
    image.png

    VennDiagram包绘制韦恩图

    library(VennDiagram)
    ## Loading required package: grid
    ## Loading required package: futile.logger
    
    # 使用draw.single.venn函数绘制一维韦恩图
    venn.plot <- draw.single.venn(
      area = 365,
      category = "All\nDays",
      lwd = 5,
      lty = "blank",
      cex = 3,
      label.col = "orange",
      cat.cex = 4,
      cat.pos = 180,
      cat.dist = -0.20,
      cat.col = "white",
      fill = "red",
      alpha = 0.15
    );
    grid.newpage();
    
    image.png
    # 使用draw.pairwise.vennh函数绘制二维韦恩图
    venn.plot <- draw.pairwise.venn(
      area1 = 100,
      area2 = 70,
      cross.area = 68,
      category = c("First", "Second"),
      fill = c("blue", "red"),
      lty = "blank",
      cex = 2,
      cat.cex = 2,
      cat.pos = c(285, 105),
      cat.dist = 0.09,
      cat.just = list(c(-1, -1), c(1, 1)),
      ext.pos = 30,
      ext.dist = -0.05,
      ext.length = 0.85,
      ext.line.lwd = 2,
      ext.line.lty = "dashed"
    );
    grid.newpage();
    
    image.png
    # 使用draw.triple.vennh函数绘制三维韦恩图
    venn.plot <- draw.triple.venn(
      area1 = 65,
      area2 = 75,
      area3 = 85,
      n12 = 35,
      n23 = 15,
      n13 = 25,
      n123 = 5,
      category = c("First", "Second", "Third"),
      fill = c("blue", "red", "green"),
      lty = "blank",
      cex = 2,
      cat.cex = 2,
      cat.col = c("blue", "red", "green")
    );
    grid.newpage();
    
    image.png
    # 使用draw.quad.venn函数绘制四维韦恩图
    # Reference four-set diagram
    venn.plot <- draw.quad.venn(
      area1 = 72,
      area2 = 86,
      area3 = 50,
      area4 = 52,
      n12 = 44,
      n13 = 27,
      n14 = 32,
      n23 = 38,
      n24 = 32,
      n34 = 20,
      n123 = 18,
      n124 = 17,
      n134 = 11,
      n234 = 13,
      n1234 = 6,
      category = c("First", "Second", "Third", "Fourth"),
      fill = c("orange", "red", "green", "blue"),
      lty = "dashed",
      cex = 2,
      cat.cex = 2,
      cat.col = c("orange", "red", "green", "blue")
    );
    grid.newpage();
    
    image.png
    # 使用draw.quintuple.venn函数绘制五维韦恩图
    # Reference five-set diagram
    venn.plot <- draw.quintuple.venn(
      area1 = 301,
      area2 = 321,
      area3 = 311,
      area4 = 321,
      area5 = 301,
      n12 = 188,
      n13 = 191,
      n14 = 184,
      n15 = 177,
      n23 = 194,
      n24 = 197,
      n25 = 190,
      n34 = 190,
      n35 = 173,
      n45 = 186,
      n123 = 112,
      n124 = 108,
      n125 = 108,
      n134 = 111,
      n135 = 104,
      n145 = 104,
      n234 = 111,
      n235 = 107,
      n245 = 110,
      n345 = 100,
      n1234 = 61,
      n1235 = 60,
      n1245 = 59,
      n1345 = 58,
      n2345 = 57,
      n12345 = 31,
      category = c("A", "B", "C", "D", "E"),
      fill = c("dodgerblue", "goldenrod1", "darkorange1", "seagreen3", "orchid3"),
      cat.col = c("dodgerblue", "goldenrod1", "darkorange1", "seagreen3", "orchid3"),
      cat.cex = 2,
      margin = 0.05,
      cex = c(1.5, 1.5, 1.5, 1.5, 1.5, 1, 0.8, 1, 0.8, 1, 0.8, 1, 0.8, 1, 0.8, 
              1, 0.55, 1, 0.55, 1, 0.55, 1, 0.55, 1, 0.55, 1, 1, 1, 1, 1, 1.5),
      ind = TRUE
    );
    grid.newpage();
    
    # Writing to file
    tiff(filename = "Quintuple_Venn_diagram.tiff", compression = "lzw");
    grid.draw(venn.plot);
    dev.off();
    
    image.png
    # 使用venn.diagram函数绘制韦恩图
    data <- read.table("demo1_venn.txt", header = T, sep = "\t")
    head(data)
    ##      Set1   Set2  Set3  Set4   Set5
    ## 1   ZMIZ1  ADCY5  TNS1  TNS1   TNS1
    ## 2    TNS1  ACTN4 ZMIZ1 ZMIZ1  ZMIZ1
    ## 3   CASZ1 SORBS1  RXRA  RXRA TSPAN9
    ## 4    NFIC   TNS1 AHDC1 NCOR2   MIDN
    ## 5 CACNA1C  ZMIZ1 ACTN4  MIDN  NCOR2
    ## 6   AHDC1  RBM20  MIDN AHDC1  AHDC1
    
    attach(data)
    ## The following objects are masked from data (pos = 6):
    ## 
    ##     Set1, Set2, Set3, Set4, Set5
    
    # 一维韦恩图
    venn.plot <- venn.diagram(
      x = list(Set1=Set1),
      filename = NULL,
      col = "black",
      lwd = 9,
      fontface = "bold",
      fill = "grey",
      alpha = 0.75,
      cex = 4,
      cat.cex = 3,
      cat.fontface = "bold",
    );
    grid.draw(venn.plot);
    grid.newpage();
    
    image.png
    # 二维韦恩图
    venn.plot <- venn.diagram(
      x = list(Set1=Set1,Set2=Set2),
      filename = NULL,
      lwd = 4,
      fill = c("cornflowerblue", "darkorchid1"),
      alpha = 0.75,
      label.col = "white",
      cex = 4,
      fontfamily = "serif",
      fontface = "bold",
      cat.col = c("cornflowerblue", "darkorchid1"),
      cat.cex = 3,
      cat.fontfamily = "serif",
      cat.fontface = "bold",
      cat.dist = c(0.03, 0.03),
      cat.pos = c(-20, 14)
    );
    grid.draw(venn.plot);
    grid.newpage();
    
    image.png
    # 三维韦恩图
    venn.plot <- venn.diagram(
      x = list(Set1=Set1,Set2=Set2,Set3=Set3),
      filename = NULL,
      col = "transparent",
      fill = c("red", "blue", "green"),
      alpha = 0.5,
      label.col = c("darkred", "white", "darkblue", "white",
                    "white", "white", "darkgreen"),
      cex = 2.5,
      fontfamily = "serif",
      fontface = "bold",
      cat.default.pos = "text",
      cat.col = c("darkred", "darkblue", "darkgreen"),
      cat.cex = 2.5,
      cat.fontfamily = "serif",
      cat.dist = c(0.06, 0.06, 0.03),
      cat.pos = 0
    );
    grid.draw(venn.plot);
    grid.newpage();
    
    image.png
    # 四维韦恩图
    venn.plot <- venn.diagram(
      x = list(Set1=Set1,Set2=Set2,Set3=Set3,Set4=Set4),
      filename = NULL,
      col = "black",
      lty = "dotted",
      lwd = 4,
      fill = c("cornflowerblue", "green", "yellow", "darkorchid1"),
      alpha = 0.50,
      label.col = c("orange", "white", "darkorchid4", "white", "white", "white",
                    "white", "white", "darkblue", "white",
                    "white", "white", "white", "darkgreen", "white"),
      cex = 2.5,
      fontfamily = "serif",
      fontface = "bold",
      cat.col = c("darkblue", "darkgreen", "orange", "darkorchid4"),
      cat.cex = 2.5,
      cat.fontfamily = "serif"
    );
    grid.draw(venn.plot);
    grid.newpage();
    
    image.png
    # 五维韦恩图
    venn.plot <- venn.diagram(
      x = list(Set1=Set1,Set2=Set2,Set3=Set3,Set4=Set4,Set5=Set5),
      filename = NULL,
      col = "black",
      fill = c("dodgerblue", "goldenrod1", "darkorange1", "seagreen3", "orchid3"),
      alpha = 0.50,
      cex = c(1.5, 1.5, 1.5, 1.5, 1.5, 1, 0.8, 1, 0.8, 1, 0.8, 1, 0.8,
              1, 0.8, 1, 0.55, 1, 0.55, 1, 0.55, 1, 0.55, 1, 0.55, 1, 1, 1, 1, 1, 1.5),
      cat.col = c("dodgerblue", "goldenrod1", "darkorange1", "seagreen3", "orchid3"),
      cat.cex = 1.5,
      cat.fontface = "bold",
      margin = 0.05
    );
    grid.draw(venn.plot);
    grid.newpage();
    
    image.png
    sessionInfo()
    ## R version 3.6.0 (2019-04-26)
    ## Platform: x86_64-w64-mingw32/x64 (64-bit)
    ## Running under: Windows 10 x64 (build 18363)
    ## 
    ## Matrix products: default
    ## 
    ## locale:
    ## [1] LC_COLLATE=Chinese (Simplified)_China.936 
    ## [2] LC_CTYPE=Chinese (Simplified)_China.936   
    ## [3] LC_MONETARY=Chinese (Simplified)_China.936
    ## [4] LC_NUMERIC=C                              
    ## [5] LC_TIME=Chinese (Simplified)_China.936    
    ## 
    ## attached base packages:
    ## [1] grid      stats     graphics  grDevices utils     datasets  methods  
    ## [8] base     
    ## 
    ## other attached packages:
    ## [1] VennDiagram_1.6.20  futile.logger_1.4.3 gplots_3.0.1.1     
    ## 
    ## loaded via a namespace (and not attached):
    ##  [1] Rcpp_1.0.1           gtools_3.8.1         digest_0.6.20       
    ##  [4] bitops_1.0-6         futile.options_1.0.1 formatR_1.7         
    ##  [7] magrittr_1.5         evaluate_0.14        KernSmooth_2.23-15  
    ## [10] stringi_1.4.3        gdata_2.18.0         rmarkdown_1.13      
    ## [13] lambda.r_1.2.3       tools_3.6.0          stringr_1.4.0       
    ## [16] xfun_0.8             yaml_2.2.0           compiler_3.6.0      
    ## [19] caTools_1.17.1.2     htmltools_0.3.6      knitr_1.23
    

    ▼更多精彩推荐,请关注我们▼

    image

    相关文章

      网友评论

        本文标题:R语言可视化(九):韦恩图绘制

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