【问题标题】:Multiple box plots from columns and row groups来自列和行组的多个箱线图
【发布时间】:2013-09-30 08:43:00
【问题描述】:

所以我试图通过从一组基因中制作箱线图来可视化我的数据,这样对于每个基因,我都有不同的框用于不同的菌株。数据看起来或多或少是这样的:

Strain  gene1         gene2      gene3  .   .   .
 A    2.6336700     1.42802     0.935742
 A    2.0634700     2.31232     1.096320
 A    2.5798600     2.75138     0.714647
 B    2.6031200     1.31374     1.214920
 B    2.8319400     1.30260     1.191770
 B    1.9796000     1.74199     1.056490
 C    2.4030300     1.20324     1.069800
 C    1.4829864     5.570571    12.29139
 C    0.7212928     6.070519    11.63530
 .
 .
----------

所以对于这个例子,我想得到 3 张不同的图片(每个基因一张),每张图片应该包含 3 个框(每个菌株一个)。可能有一种很好且简单的方法可以做到这一点,但到目前为止我正在画一个空白......


感谢所有的答案/建议,这真的很有帮助。

【问题讨论】:

  • 看看herehere。来自同一本食谱:“要使用 ggplot2 制作图表,数据必须位于数据框中,并且采用“长”(相对于宽)格式。)

标签: r plot boxplot


【解决方案1】:

这是使用ggplot2 的一种方法。

首先,我们将您的数据框传递为长格式:

library(reshape2)
dfm <- melt(df)

然后:

library(ggplot2)
ggplot(data=dfm) + geom_boxplot(aes(x=Strain,y=value)) + facet_wrap(~variable)

【讨论】:

    【解决方案2】:

    lattice 包非常适合这种分组。我一直发现它比ggplot2 更容易使用。你也可以使用老式的基础 R “ink-on-paper-method” (link) 来完成,虽然它有点手动。

    首先,您需要重塑数据框(顺便说一句,使用 juba 建议的 reshape2 包可以更好地完成此步骤,但我将保留我的解决方案作为替代方案)。

    str <- "Strain  gene1         gene2      gene3
     A    2.6336700     1.42802     0.935742
     A    2.0634700     2.31232     1.096320
     A    2.5798600     2.75138     0.714647
     B    2.6031200     1.31374     1.214920
     B    2.8319400     1.30260     1.191770
     B    1.9796000     1.74199     1.056490
     C    2.4030300     1.20324     1.069800
     C    1.4829864     5.570571    12.29139
     C    0.7212928     6.070519    11.63530"
    
    tab <- read.table(con <- textConnection(str), header=TRUE)
    tab <- data.frame(Strain=tab$Strain, stack(tab[-1]))
    
    names(tab) <- c("Strain", "Expression", "Gene")
    

    然后绘制

    library(lattice)
    bwplot(Expression ~ Strain | Gene, tab)
    

    或以其他方式组合成一个面板

    bwplot(paste(Strain, Gene) ~ Expression, tab)
    

    【讨论】:

      猜你喜欢
      • 2021-11-15
      • 2015-12-20
      • 2021-04-18
      • 2020-08-10
      • 1970-01-01
      • 1970-01-01
      • 2021-09-16
      • 2018-12-05
      • 2012-09-28
      相关资源
      最近更新 更多