【问题标题】:How to plot binary data and colour presence by group in R如何在R中按组绘制二进制数据和颜色存在
【发布时间】:2020-07-13 12:59:54
【问题描述】:

我是 R 初学者,我正在尝试绘制简单的存在/不存在二进制数据。我到处搜索,但我无法确定是否可以通过分组/元数据为绘图着色。到目前为止,我有一个带有 ggplot 的简单绘图,代码如下:

我的数据如下所示:

library(ggplot2)
data <- read.csv("resistance.csv", row.names=1)
data_matrix <- data.matrix(data)
mybinarymap <- heatmap(data_matrix, Rowv=NA, Colv=NA, col = c("white","black"))

剧情如下:

但是,我想将图块更改为由基因所属的“类”着色,例如额外的数据如下所示:

如果值为 0,则会有一个白色/没有颜色的图块,如果存在基因,则该块将被着色,颜色由“类”列确定。任何人都可以帮助或建议其他软件包吗? UpSetR 似乎没有按我的要求做。我假设我将不得不做一些重塑。感谢您的帮助。

【问题讨论】:

    标签: r binary heatmap


    【解决方案1】:

    您可以在ggplot2 中完成所有这些操作,并在reshape2 的帮助下将您的数据转换为长格式。在这里,我假设您有一个名为 data 的数据框,它看起来像您的第二个数据图像。由于您没有制作可重现的示例,因此我不得不将您的图像通过 OCR 重新创建您的数据,因此它可能并不完全准确:

    library(ggplot2)
    library(reshape2)
    
    ggplot(melt(data), aes(gene, variable, fill = Class, alpha = value)) + 
      geom_tile(colour = "gray50") +
      scale_alpha_identity(guide = "none") +
      coord_equal(expand = 0) +
      theme_bw() +
      theme(panel.grid.major = element_blank(),
            axis.text.x = element_text(angle = 45, hjust = 1))
    


    数据

    data <- structure(list(gene = c("aadAl", "aadAS", "aph(3\")-lb", "aph(6)-ld", 
    "blaCTX-M-27", "blaOXA-1", "erm(B)", "mdf(A)", "mph(A)", "catAl"
    ), Class = c("Aminoglycoside", "Aminoglycoside", "Aminoglycoside", 
    "Aminoglycoside", "Beta-lactam", "Beta-lactam", "Macrolide", "Macrolide", 
    "Macrolide", "Tetracycline"), X598080 = c(1L, 0L, 1L, 1L, 1L, 
     0L, 1L, 1L, 1L, 0L), X607387 = c(1L, 0L, 1L, 1L, 1L, 0L, 0L, 
    1L, 0L, 0L), X888048 = c(1L, 0L, 0L, 0L, 0L, 1L, 1L, 1L, 1L, 
    1L), X893916 = c(0L, 1L, 0L, 0L, 1L, 0L, 1L, 1L, 1L, 0L)), class = "data.frame",
    row.names = c(NA, -10L))
    
    data
    #>           gene          Class X598080 X607387 X888048 X893916
    #> 1        aadAl Aminoglycoside       1       1       1       0
    #> 2        aadAS Aminoglycoside       0       0       0       1
    #> 3   aph(3")-lb Aminoglycoside       1       1       0       0
    #> 4    aph(6)-ld Aminoglycoside       1       1       0       0
    #> 5  blaCTX-M-27    Beta-lactam       1       1       0       1
    #> 6     blaOXA-1    Beta-lactam       0       0       1       0
    #> 7       erm(B)      Macrolide       1       0       1       1
    #> 8       mdf(A)      Macrolide       1       1       1       1
    #> 9       mph(A)      Macrolide       1       0       1       1
    #> 10       catAl   Tetracycline       0       0       1       0
    

    reprex package (v0.3.0) 于 2020-07-13 创建

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-07-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多