【问题标题】:Venn diagrame from contingency table in RR中列联表的维恩图
【发布时间】:2023-01-14 01:00:57
【问题描述】:

假设我有一个类似列联表的数据,它显示了丰富的数据,但我想从这个数据框中绘制维恩图。请帮忙 我的数据结构如下

species_abundance<-data.frame(Genus = c("Parasphingorhabdus", "Loktanella", "Cytobacillus", "Paracoccus", "Paucisalibacillus", "Kytococcus", "Salinibacterium"),
               S3 = c(0, 0, 1, 1, 0, 0, 1),
               S5 = c(0, 0, 0, 2, 1, 0, 1),
               S7 = c(3, 1, 0, 0, 3, 1, 0),
               S9 = c(0, 1, 0, 0, 2, 1, 0),
               S10 = c(2, 0, 1, 0, 3, 2, 1))

请帮助我如何从此数据框中绘制维恩图,以便在不同站点(S3、S5、S7 ......)中找到独特和共享的物种 提前致谢

【问题讨论】:

    标签: r dataframe venn-diagram contingency venn


    【解决方案1】:

    有几种方法可以在 R 中获得 4 变量维恩图,但超出此类别数量的维恩图是 extremely complicated,这不是可视化数据的好方法。在您的情况下,呈现此类数据的自然方式是通过热图。您首先需要将数据重塑为长格式。

    library(tidyverse)
    
    species_abundance %>%
      pivot_longer(-Genus, names_to = 'Site', values_to = 'Count') %>%
      mutate(Site = factor(Site, unique(Site))) %>%
      ggplot(aes(Site, Genus, fill = factor(Count))) +
      geom_tile(color = 'black') +
      geom_text(aes(label = ifelse(Count == 0, '', Count))) +
      coord_equal() +
      scale_fill_manual(guide = 'none', 
                        values = c('white', 'lightyellow', 'yellow', 'orange')) +
      theme_minimal(base_size = 16)
    

    【讨论】:

    • 谢谢,但我想画维恩图,如果可能的话,请帮我至少画四个站,这样我就可以理解 R 中的一些基础知识
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-11-04
    • 1970-01-01
    • 1970-01-01
    • 2015-07-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多