【问题标题】:how to display the values of the means in R ggdensity function?如何在 R ggdensity 函数中显示平均值?
【发布时间】:2020-04-23 01:27:07
【问题描述】:

知道如何在下图中显示虚线(均值)的值吗?

非常感谢。

library(ggpubr)
#> Loading required package: ggplot2
#> Loading required package: magrittr
# Create some data format
# :::::::::::::::::::::::::::::::::::::::::::::::::::
set.seed(1234)
wdata = data.frame(
   sex = factor(rep(c("F", "M"), each=200)),
   weight = c(rnorm(200, 55), rnorm(200, 58)))
head(wdata, 4)
#>   sex   weight
#> 1   F 53.79293
#> 2   F 55.27743
#> 3   F 56.08444
#> 4   F 52.65430

# Density plot with mean lines and marginal rug
# :::::::::::::::::::::::::::::::::::::::::::::::::::
# Change outline and fill colors by groups ("sex")
# Use custom palette
ggdensity(wdata, x = "weight",
   add = "mean", rug = TRUE,
   color = "sex", fill = "sex",
   palette = c("#00AFBB", "#E7B800"))

【问题讨论】:

    标签: r add mean


    【解决方案1】:

    您可以使用aggregate 计算每个组的平均值,并使用此输出来馈送geom_text 函数:

    aggregate(weight~sex, data = wdata, FUN = mean)
    
      sex   weight
    1   F 54.94224
    2   M 58.07325
    

    这里在geom_text中使用它:

    ggdensity(wdata, x = "weight",
              add = "mean", rug = TRUE,
              color = "sex", fill = "sex",
              palette = c("#00AFBB", "#E7B800"))+
      geom_text(data = aggregate(weight~sex, data = wdata, FUN = mean),
                aes(x = weight, y = Inf, color = sex, label = round(weight,2)), 
                vjust = 1)
    

    它回答了你的问题吗?

    【讨论】:

    • 嗨,dc37 是的,它确实如此,我生命中的一天迷失在此......但最后,感谢你们一切都好!再次非常感谢你;)最好的问候。
    • 哈哈,不客气;)乐于助人。如果您对答案感到满意,请随时接受和/或投票,以让人们知道这个问题已经解决。更多信息:stackoverflow.com/help/someone-answers
    • 完成了,我相信,所有最好的 dc37 ;)
    猜你喜欢
    • 2011-01-30
    • 2021-06-25
    • 1970-01-01
    • 2017-04-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-19
    相关资源
    最近更新 更多