乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      韋恩圖(Venn Diagram)

       漢無為 2021-12-13

      今天這篇推文小編就匯總一下有關(guān)Venn Diagram(韋恩圖) 的繪制方法,主要內(nèi)容包括:

      • Venn Diagram(韋恩圖)的簡介
      • Venn Diagram(韋恩圖)的R繪制方法
      • Venn Diagram(韋恩圖)的Python繪制方法

      Venn Diagram(韋恩圖)的簡介

      Venn Diagram(韋恩圖),或叫Venn圖、文氏圖、溫氏圖,是在所謂的集合論(或者類的理論)數(shù)學分支中表示集合或者類的一種草圖,主要用于顯示元素集合重疊區(qū)域的圖示,如下圖所示:

      Venn Diagram Example

      那么,我們?nèi)绾问褂肦或者Python實現(xiàn)Venn Diagram(韋恩圖)的高效繪制呢?首先小編介紹R繪制的方法。

      Venn Diagram(韋恩圖)的R繪制方法

      R-ggvenn包繪制

      使用R繪制Venn Diagram圖,首先想到的肯定是ggplot2,而ggvenn包作為ggplot2的拓展包且有g(shù)eom_*(),這里就最先介紹。ggvenn包主要使用ggvenn()函數(shù)和geom_venn()繪圖函數(shù)(ggplot2圖層語法類似)繪制。官網(wǎng):https://github.com/yanlinlin82/ggvenn

      我們首先介紹下其主要的參數(shù)設(shè)置:

      1. For filling:

      • fill_color(填充顏色):默認是 c('blue', 'yellow', 'green', 'red')
      • fill_alpha(透明度):默認是0.5

      2. For stroke:

      • stroke_color(線條顏色):默認是'black'
      • stroke_alpha(線條透明度):默認是1
      • stroke_size(線條寬度):默認是1
      • stroke_linetype:默認是'solid'

      3. For set name:

      • set_name_color(文本名顏色):默認是'black'
      • set_name_size(文本名大小):默認是6

      4. For text:

      • text_color(文本顏色):默認是'black'
      • text_size(文本大小):默認是4.

      以上各參數(shù)為ggvenn()和geom_venn()繪圖函數(shù)的共同參數(shù),其他額外參數(shù)小伙伴們可自行查閱哈~

      接下來,我們結(jié)合實例進行解釋說明哈~

      「樣例一」:ggvenn()函數(shù)繪制

      # 樣例數(shù)據(jù)
      a <- list(`Set 1` = c(1, 3, 5, 7, 9),
                `Set 2` = c(1, 5, 9, 13),
                `Set 3` = c(1, 2, 8, 9),
                `Set 4` = c(6, 7, 10, 12))
      #可視化繪制
      opar <- par(family = 'Roboto Condensed')
      ggvenn(a,fill_color=mypal,fill_alpha = .7,stroke_linetype = 'longdash',set_name_size = 8,
            text_size=5) 
      Example Of ggvenn()

      「樣例二」:geom_venn()函數(shù)繪制

      # 生成樣例數(shù)據(jù)
      d <- tibble(value   = c(1, 2, 3, 5, 6, 7, 8, 9, 10, 12, 13),
                  `Set 1` = c(T, F, T, T, F, T, F, T, F,  F,  F),
                  `Set 2` = c(T, F, F, T, F, F, F, T, F,  F,  T),
                  `Set 3` = c(T, T, F, F, F, F, T, T, F,  F,  F),
                  `Set 4` = c(F, F, F, F, T, T, F, F, T,  T,  F))
      # 可視化繪制
      ggvenn_4 <- ggplot(d, aes(A = `Set 1`, B = `Set 2`, C = `Set 3`, D = `Set 4`)) +
        geom_venn(fill_color=mypal,fill_alpha = .7,stroke_linetype = 'longdash',set_name_size = 8,
                  text_size=5) + 
        theme_void()+
        coord_fixed() +
        labs(title = 'Example of ggvenn:: geom_venn function',
             subtitle = 'processed charts with geom_venn()',
             caption = 'Visualization by DataCharm') +
        theme(plot.title = element_text(hjust = 0.5,vjust = .5,color = 'black',face = 'bold',
                                        size = 20, margin = margin(t = 1, b = 12)),
              plot.subtitle = element_text(hjust = 0,vjust = .5,size=15),
             plot.caption = element_text(face = 'bold',size = 12))
      Example Of geom_venn()

      這里分別使用了ggvenn() 和 geom_venn() 函數(shù)繪制了韋恩圖,更多細節(jié),感興趣的小伙伴可參考官網(wǎng)進行理解哈~

      R-ggVennDiagram包繪制

      R-ggVennDiagram包和ggvenn包一樣也是ggplot2的拓展包,其可以支持2~7維的韋恩圖繪制,這里小編直接通過使用ggVennDiagram()繪制韋恩圖進行解釋。

      「樣例」

      library(ggVennDiagram)
      # 樣例數(shù)據(jù)
      genes <- paste('gene',1:1000,sep='')
      set.seed(20210419)
      x <- list(A=sample(genes,300),
                B=sample(genes,525),
                C=sample(genes,440),
                D=sample(genes,350))
      # 可視化繪制
      library(ggplot2)
      ggVennDiagram(x, category.names = c('Stage 1','Stage 2','Stage 3', 'Stage4'),
                    size=1,lty='longdash',color='gray60') + 
        scale_fill_gradient(name='Count',low='#EC7D85',high = '#182F6F') +
        hrbrthemes::theme_ipsum(base_family = 'sans') +
        labs(title = 'Example of ggVennDiagram:: ggVennDiagram function',
             subtitle = 'processed charts with ggVennDiagram()',
             caption = 'Visualization by DataCharm') +
        theme(plot.title = element_text(hjust = 0.5,vjust = .5,color = 'black',face = 'bold',
                                        size = 20, margin = margin(t = 1, b = 12)),
              plot.subtitle = element_text(hjust = 0,vjust = .5,size=15),
              plot.caption = element_text(face = 'bold',size = 12),
              axis.text.x = element_blank(),
              axis.text.y = element_blank(),
              axis.title.x = element_blank(),
              axis.title.y = element_blank())
      Example of ggVennDiagram

      Venn Diagram(韋恩圖)的Python繪制方法

      要想使用Python繪制韋恩圖(這里主要介紹基于matplotlib的繪制方法,交互式后期統(tǒng)一介紹),這里介紹一個非常便捷的方法-matplotlib-venn 繪制。安裝方式如下:

      「安裝」

      easy_install matplotlib-venn

      「官網(wǎng)」:https://github.com/konstantint/matplotlib-venn

      「樣例一」:兩個集合

      from matplotlib_venn import venn2, venn2_circles, venn2_unweighted
      from matplotlib_venn import venn3, venn3_circles
      import matplotlib.pyplot as plt

      # 樣例數(shù)據(jù)
      Group1 = ['a','b','c','e','f','g','i','p','q']
      Group2 = ['b','e','f','h','k','q','r','s','t','u','v','z']
      Group3 = ['c','e','g','h','j','k','o','q','z']

      #可視化繪制
      plt.rcParams['font.family'] = ['Times New Roman']
      fig, ax = plt.subplots(figsize=(5,3),dpi=110)
      vee2 = venn2([set(Group1), set(Group2)],set_labels=('Group1', 'Group2'),
            set_colors=('#0073C2FF', '#EFC000FF'), alpha = 0.8,ax=ax)
      venn2_circles([set(Group1), set(Group2)], linestyle='--', linewidth=2, color='black',ax=ax)

      # 定制化設(shè)置:設(shè)置字體屬性
      for text in vee2.set_labels:
          text.set_fontsize(15);
      for text in vee2.subset_labels:  
          text.set_fontsize(16)
          text.set_fontweight('bold')
      ax.text(.8,-.1,'\nVisualization by DataCharm',transform = ax.transAxes,
              ha='center', va='center',fontsize = 8,color='black')
      plt.title('Example Of venn2() and venn2_circles()',size=15,fontweight='bold',
               backgroundcolor='#868686FF',color='black',style='italic')
      Example Of venn2()

      「樣例二」:三個集合

      fig, ax = plt.subplots(figsize=(5,3),dpi=110)
      vd3=venn3([set(Group1),set(Group2),set(Group3)],
                set_labels=('Group1','Group2','Group3'),
                set_colors=('#0073C2FF','#EFC000FF','#CD534CFF'), 
                alpha = 0.8,ax=ax)
      venn3_circles([set(Group1), set(Group2),set(Group3)], linestyle='--', linewidth=2, color='black',ax=ax)
      # 定制化設(shè)置
      for text in vd3.set_labels:
          text.set_fontsize(15);
          text.set_fontweight('bold')
      for text in vd3.subset_labels:
          text.set_fontsize(15)
          text.set_fontweight('bold')
      ax.text(.8,-.1,'\nVisualization by DataCharm',transform = ax.transAxes,
              ha='center', va='center',fontsize = 9,color='black')
      plt.title('Example Of venn3() and venn3_circles()',fontweight='bold',fontsize=15,
                pad=30,backgroundcolor='#868686FF',color='black',style='italic')
      Example Of venn3()

      當然,你還可以通過如下代碼定義”圈“的樣式:

      ···
      c3 = venn3_circles([set(Group1), set(Group2),set(Group3)], linestyle='--', linewidth=2, color='black',ax=ax)
      ···
      # 對圓進行設(shè)置
      c3[1].set_lw(7)
      c3[1].set_ls(':')
      c3[1].set_color('#7AA6DCFF')
      ···
      Example02 Of venn3()

      以上小編只是介紹最基礎(chǔ)和常用的可視化繪制方法,更多細節(jié)大家可參照官網(wǎng)進行探索哈~

      總結(jié)

      今天這篇推文,小編較為系統(tǒng)的介紹了使用R和Python進行Venn Diagram(韋恩圖)的繪制且簡單介紹了Venn Diagram(韋恩圖)的用途,希望大家可以有所收獲哈~~

        本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
        轉(zhuǎn)藏 分享 獻花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多