aes 中每个箱线图的特定颜色

Specific color for each boxplot in aes

我有一组数据可以总结如下例。一些值和代表一些分类值的另外两个列。

library(ggplot2)
set.seed(123)
sdata=data.frame( aicat=sample(letters[1:4], 50, replace=TRUE), site=sample(letters[5:6], 50, replace=TRUE), vals=sample(1:1000, 50) )

head(sdata)
  aicat site vals
1     c    f  409
2     c    e  308
3     c    e  278
4     b    e   89
5     c    e  928
6     b    f  537

我想用箱线图绘制这些数据,在 x 上我有 aicat 变量,我还按站点对数据进行分组。 为此,我执行了以下操作:

ggplot(sdata, aes(x=aicat, y=vals, fills=site, color=site))+
  geom_boxplot()+
  scale_fill_manual()

生成以下图像:

问题如下: 我怎样才能为这些箱形图中的每一个分配以下颜色列表?

values=c("brown1", "brown4", "gold", "gold4", "dodgerblue", "dodgerblue4", "gray70", "gray40")

我希望“a”中的箱线图是 brown1(最左边)和 brown4(最右边), b gold(最左边)和 gold4(最右边)中的一个,依此类推。我还需要保留情节的这种结构,因此 facet_wrap 的解决方案不是我要找的。

有什么建议吗?

您可以在 aes()

之外的 fill 参数中手动指定此颜色
 geom_boxplot(fill = c("brown1", "brown4", "gold", "gold4", "dodgerblue", "dodgerblue4", "gray70", "gray40"))