所有组的一种颜色
听起来您希望两个密度图都是红色的。在这种情况下,您可以使用group
而不是fill
withinaes
来表示分组变量,然后fill
为整个图表设置颜色,如下所示:
m <- m + geom_density(aes(
group=factor(type)), fill="#ff0000"
, size=2, alpha=.4)
每组的特定颜色
但是,如果您实际上是在尝试为每个组设置特定的颜色,那么您可以使用scale_fill_manual
. 有两种方法可以做到这一点:使用命名的颜色向量,或者使用两个向量——一个带有颜色,一个带有组名。这是来自文档:
values
一组美学值来映射数据值。如果这是一个命名向量,则将根据名称匹配值。如果未命名,则值将按顺序(通常按字母顺序)与比例限制匹配。将给出任何不匹配的数据值na.value
。
1. 使用命名向量
groupColors <- c(a="#00ff00", b="#ff0000", c="#0000ff")
m <- ggplot(data, aes(x=lr))
m <- m + geom_density(aes(fill=factor(type)), size=2, alpha=.4) +
scale_fill_manual(values=groupColors)
m2 <- ggplot(data2, aes(x=lr))
m2 <- m2 + geom_density(aes(fill=factor(type)), size=2, alpha=.4) +
scale_fill_manual(values=groupColors)
2. 使用两个向量
groupLimits <- c("a", "b", "c")
groupColors <- c("#00ff00", "#ff0000", "#0000ff")
m <- ggplot(data, aes(x=lr))
m <- m + geom_density(aes(fill=factor(type)), size=2, alpha=.4) +
scale_fill_manual(values=groupColors, limits=groupLimits)
m2 <- ggplot(data2, aes(x=lr))
m2 <- m2 + geom_density(aes(fill=factor(type)), size=2, alpha=.4) +
scale_fill_manual(values=groupColors, limits=groupLimits)
这种方法的一个关键区别是groupLimits
它将控制不同组在图例中出现的顺序(并且在这种情况下,还将强制所有三个组出现)。