首页 > 解决方案 > 使用 stat_summary 在箱线图上选择颜色进行标记

问题描述

因此,有几个有用的页面是关于在具有多个系列的箱线图上标记方法的;但即使是那些我也遇到了一个问题,即我无法为点选择颜色并仍然显示两种不同的方式。我可以做这个:

library(ggplot2)
d <- subset(mpg,class=="compact"|class=="midsize")
ggplot(d,aes(drv,hwy,color=class)) + geom_boxplot() + scale_color_manual(values=c("blue","orange")) +
  stat_summary(fun=mean,size=.5,shape=5,position=position_dodge(width=.75))

这给了我两种不同的方式,但它们与箱线图本身的颜色相同,因此不是最好看的。

第一次尝试箱线图,意味着杰出

所以我在代码中添加了一个颜色规范:

ggplot(d,aes(drv,hwy,color=class)) + geom_boxplot() + scale_color_manual(values=c("blue","orange")) +
  stat_summary(fun=mean,size=.5,color="black",shape=5,position=position_dodge(width=.75))

但它只显示一个平均值。

第二次尝试,意味着不区分

那么我在这里缺少什么来获得指定的颜色和被标记的多种方式?

标签: rggplot2

解决方案


当您覆盖其中的颜色美学时,stat_summary()您也会丢失分组信息。您需要使用以下命令将其显式恢复aes(group = class)

library(ggplot2)

d <- subset(mpg, class == "compact" | class == "midsize")

ggplot(d, aes(drv, hwy, color = class)) +
  geom_boxplot() +
  stat_summary(
    aes(group = class),
    colour = "black",
    fun = mean,
    size = .5,
    shape = 5,
    position = position_dodge(width = .75)
  )
#> Warning: Removed 4 rows containing missing values (geom_segment).


推荐阅读