【问题标题】:Plot aggregate density with ggplot2用 ggplot2 绘制聚集密度
【发布时间】:2021-10-15 01:28:52
【问题描述】:

我想在此图上绘制一条表示按性别划分的聚合密度的单线。换句话说,我想绘制另一层,即所有线的平均值,按性别分组。我尽力创建了一个可重现的示例,并且非常接近:

library(ggplot2)
A <- c(rnorm(2000, mean = 20, sd = 2), rnorm(2000, mean = 30, sd = 3))
B <- rep(c(1:100), 40)
C <- as.factor(c(rep(1, 2000), rep(2,2000)))

data <- data.frame("CT" = A, "ID" = B, "Sex" = C)

ggplot(data, aes(x=CT)) +
  geom_line(aes(color=Sex, group = interaction(ID, Sex)), stat="density", size=0.3, alpha=0.4)

【问题讨论】:

    标签: r ggplot2 plot data-visualization


    【解决方案1】:

    您可以添加另一个 geom_line() 而不使用分组变量,这将给出我认为您正在寻找的内容:

    ggplot(data, aes(x=CT)) +
      geom_line(aes(color=Sex, group = interaction(ID, Sex)), stat="density", size=0.3, alpha=0.4) +
      geom_line(stat="density")
    

    给出:

    或者,如果您仍然希望每个性别分组中的行的平均密度,您可以将上面的最后一行替换为:

    geom_line(stat="density", aes(group=Sex), size=1.25)
    

    geom_line(stat="density", aes(colour=Sex), size=1.25)
    

    如果您希望颜色匹配。

    【讨论】:

      猜你喜欢
      • 2014-03-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-14
      • 1970-01-01
      • 2015-06-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多