我需要做一个公司工人的年龄密度图.一个密度区应显示所有工人的年龄,另一个密度区应按性别划分.大概是这样的:
# Load libraries.
library(ggplot2)
library(magrittr)
# Create data.
data.frame(Age= rnorm(100, 40, 10),
Sex= sample(c("Male", "Female"), 100, replace= TRUE)) %>%
dplyr::mutate(id= 1:dplyr::n()) %>%
rbind.data.frame(., .) %>%
dplyr::mutate(df= ifelse(duplicated(id), "All", "By sex"),
df= factor(df, levels= c("All", "By sex")),
Sex= ifelse(df == "All", "All", Sex),
Sex= factor(Sex, levels= c("All", "Female", "Male"))) %>%
# Plot data.
ggplot(data= ., mapping= aes(x= Age, col= Sex)) +
geom_density() +
facet_wrap(. ~ df) +
scale_color_manual(breaks= c("Female", "Male"),
values= c("red", "blue", "green"))
上述代码的结果如下所示:
如图所示,我能够从图例中删除因子水平"All"
.但是如何指定这个下降的因子水平的 colored颜色 ?我在scale_color_manual
中添加了不同的第三个values
(这里:"green"
),但这没有效果.如何设置"All
"的 colored颜色 而不在图例中显示此因子水平?
我发现的是this,他们似乎可以设定下降的水平,但它对我不起作用.