使用ggplot只对多个箱线图中的特定箱线图着色

3

我希望使用ggplot指定多个箱线图中一个箱线图的颜色。

例如,假设我正在使用nlme包中附带的牙齿矫正数据集。

我应该如何指定男性的箱线图为绿色?

> head(Orthodont)
Grouped Data: distance ~ age | Subject
  distance age Subject  Sex
1     26.0   8     M01 Male
2     25.0  10     M01 Male
3     29.0  12     M01 Male
4     31.0  14     M01 Male
5     21.5   8     M02 Male
6     22.5  10     M02 Male
> ggplot(data = Orthodont) + geom_boxplot(aes(x = factor(Sex), y = distance))

谢谢!

2个回答

6
如果您的x变量有多个级别(例如 Subject)且不需要在图例中显示颜色,则可以绘制另一个箱线图层,只针对其中一个级别使用所需的颜色。
ggplot(data = Orthodont) + geom_boxplot(aes(x = Subject, y = distance))+
      geom_boxplot(data=Orthodont[Orthodont$Subject=="M01",],
                        aes(x = Subject, y = distance),fill="green")

enter image description here


4

也许有一种方法可以只给一个着色,但是您可以手动更改填充颜色。默认填充似乎是白色的。您还可以使用values = c(NA, "red")

ggplot(Orthodont) +
  geom_boxplot(aes(x=factor(Sex), y = distance, fill = Sex)) +
  scale_fill_manual(values = c("red", "white"))

enter image description here


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接