1

我无法弄清楚如何在 R 中制作包含多个箱线图的单个图形,同时按列和行对我的数据框/矩阵进行分组。

我在 R 中有一个 10 行 500 列的数据框。这些列分为 2 组(因子 - 1 和 2),现在我想要一个包含两个箱线图的单个图,用于我的数据框的每一行受列组的影响。

前任。

    M1 N2 O1 P2 Q1 R2      # [The 1's and 2's refer to my two column groups]
 A  10 11 12 13 14 15
 B  15 14 13 12 11 10 
 C  20 21 22 23 24 25
 D  25 24 23 22 21 20

因此,对于上面的示例,我希望每行都有一个带有“4 个箱线图对”的图,这样每个箱线图对将代表与我的列的 1 和 2 因子对应的值。

提前致谢 !!!

4

1 回答 1

6

这里的想法使用reshape2. 由于您的列多于行,因此很自然地处理转置。

library(ggplot2)
library(reshape2)
dt <- read.table(text='
M1 N2 O1 P2 Q1 R2     
A  10 11 12 13 14 15
B  15 14 13 12 11 10 
C  20 21 22 23 24 25
D  25 24 23 22 21 20',header=TRUE)
dt.m <- melt(t(dt))
dt.m$Var1 <- gsub('[A-Z]','',dt.m$Var1)

这里有 2 个绘图选项:

library(ggplot2)
library(gridExtra)
p1 <- ggplot(dt.m) +
   geom_boxplot(aes(x=Var2,y=value,fill=Var1))

p2 <- ggplot(dt.m) +
  geom_boxplot(aes(x=Var2,y=value,fill=Var2))+
  facet_grid(~Var1)

grid.arrange(p1,p2)

在此处输入图像描述

于 2013-07-09T16:04:47.747 回答