如何在ggplot2中为每个X变量绘制多个Y框?

时间:2015-10-28 18:53:55

标签: r ggplot2 boxplot

以下是我的数据df

的示例
group   score1  score2
a   12  15
a   11  14
a   24  22
b   34  24
b   14  23
b   33  44
c   11  22
c   23  34
c   32  43
...

我知道如何使用ggplot2制作比较groupscore1的箱线图以及将groupscore2进行比较的另一个箱线图。

但是如何制作一个X轴为group的箱形图,并为score1score2提供方框?

1 个答案:

答案 0 :(得分:3)

我相信这可能是你得到的 - 首先你可能要考虑用tidyr整理数据集,然后你可以使用interaction()调用来创建情节:

library(ggplot2)
library(tidyr)

df <- gather(df, score, value, -group)
head(df)
#   group  score value
# 1     a score1    12
# 2     a score1    11
# 3     a score1    24
# 4     b score1    34
# 5     b score1    14
# 6     b score1    33

ggplot(df, aes(x = interaction(score, group), y = value)) +
  geom_boxplot()

Plot 01

作为替代方案,您可以将新的score变量传递给color美学来获得如下内容:

Plot 02