我需要做一个公司工人的年龄密度图.一个密度区应显示所有工人的年龄,另一个密度区应按性别划分.大概是这样的:

# 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"))

上述代码的结果如下所示:

Plot

如图所示,我能够从图例中删除因子水平"All".但是如何指定这个下降的因子水平的 colored颜色 ?我在scale_color_manual中添加了不同的第三个values(这里:"green"),但这没有效果.如何设置"All"的 colored颜色 而不在图例中显示此因子水平?

我发现的是this,他们似乎可以设定下降的水平,但它对我不起作用.

推荐答案

使用values的命名矢量将 colored颜色 映射到类别,并指定要在图例中看到的breaks.

  ggplot(data = ., mapping= aes(x = Age, col = Sex)) +
  geom_density() +
  facet_wrap(. ~ df) +
  scale_color_manual(values = c(All = "green", Female = "red", Male = "blue"),
                     breaks = c('Female', 'Male'))

enter image description here

R相关问答推荐

高质量地将R格式的图表从Word中输出

在值和NA的行顺序中寻找中断模式

r中的stat_difference函数不起作用

整数成随机顺序与约束R?

在R中使用download. file().奇怪的URL?

如何编辑gMarginal背景以匹配绘图背景?

如何提取所有完美匹配的10个核苷酸在一个成对的匹配与生物字符串在R?>

根据列A中的差异变异列,其中行由列B中的相对值标识

将重复项转换为NA

将一个字符串向量调整为与其他字符串向量完全相同的大小

如何在R中平滑地绘制线图(不拟合)?

变长向量的矢量化和

删除在R中的write.table()函数期间创建的附加行

用满足特定列匹配的另一行替换NA行

如何在AER::ivreg中指定仪器?

按镜像列值自定义行顺序

从矩阵创建系数图

在一个multiplot中以非对称的方式在R中绘制多个图

R:改进实现简单模型

如何在GGPlot中控制多个图例和线型