ggplot2:如何从数据框创建一个简单的boxplot?

时间:2012-11-06 09:38:22

标签: r boxplot ggplot2

我一直在努力做这个箱子图一整天。我很快就放弃了。请帮忙。 我只想要一个简单的箱子图,用于我的3组,A,B和C. 这是我简化的数据:

> mydata 
   A01 A02 A03 B01 B02 B03 C01 C02 C03
id0001    1    2    3    6    7    8    11    12    13

A01,A02和A03应该构成A等的置信区间。如何在x轴上设置一个非常简单的箱线图,其中有3组? 虽然盒子也很棒,但如果有人能帮助我制作类似于this one的情节,我将非常感激。最后,我想创建一个包含多个ID的图表,所以它看起来像this one,但是像第一个一样有错误条。

如果有人可以帮助我或给我提示如何继续,我会非常感激!

谢谢。

1 个答案:

答案 0 :(得分:5)

假设您确实需要一个箱线图(或 ggplot2 中的任何其他图表),您需要将数据强制转换为正确的格式。以下是基于您显示的类似数据的示例:

df <- data.frame(matrix(c(1:3, 6:8, 11:13), nrow = 1))
names(df) <- paste0(rep(LETTERS[1:3], each = 3), 1:3)

sdf <- stack(df)

sdf <- transform(sdf, group = substring(ind, 1, 1),
                 obs = substring(ind, 2))

数据sdf现在采用标准化格式(或长格式):

> head(sdf)
  values ind group obs
1      1  A1     A   1
2      2  A2     A   2
3      3  A3     A   3
4      6  B1     B   1
5      7  B2     B   2
6      8  B3     B   3

然后可以轻松绘制这些数据:

require(ggplot2)
plt <- ggplot(sdf, aes(x = group, y = values)) +
    geom_boxplot()
plt
制造

enter image description here