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

use*_*000 0 r ggplot2 boxplot

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

> mydata 
   A01 A02 A03 B01 B02 B03 C01 C02 C03
id0001    1    2    3    6    7    8    11    12    13
Run Code Online (Sandbox Code Playgroud)

A01,A02和A03应该弥补的置信区间为A,等等.我怎么能有3组在x轴一个非常简单的箱线图?虽然盒子将是巨大的,我会很感激,如果有人可以帮助我让我的情节相似,这一个.最后,我想打一个包含多个ID的图形,所以它看起来像这一个,但误差棒像第一个.

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

谢谢.

Rei*_*son 5

假设您确实需要一个boxplot(或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))
Run Code Online (Sandbox Code Playgroud)

数据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
Run Code Online (Sandbox Code Playgroud)

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

require(ggplot2)
plt <- ggplot(sdf, aes(x = group, y = values)) +
    geom_boxplot()
plt
Run Code Online (Sandbox Code Playgroud)

生产:

在此输入图像描述