【问题标题】:ggplot2: Density plot with mean / 95% confidence interval lineggplot2:具有均值 / 95% 置信区间线的密度图
【发布时间】:2020-01-27 23:52:07
【问题描述】:

我知道有一种方法可以用箱线图绘制密度图,如下所示:所以基本上,在这个图中,使用了中位数和四分位数。

但是,我不知道如何表达每个密度图的均值和置信区间。我想知道是否有一种方法可以基于 ggplot2 在 x 轴上绘制 “均值和置信区间”线(而不是带有中位数和四分位数的箱线图)。

我尝试使用 geom_errorbarh,但未能生成我想看到的内容。

这是保存在 sum_stat 中的具有平均值和 95% 置信区间计算的 R 代码。

library(ggplot2)
library(ggridges)
library(grid)
library(reshape2)
library(ggstance)
library(dplyr)

# Generating the dataset
x <- data.frame(v1=rnorm(5000, mean = -0.02, sd = 0.022),
                v2=rnorm(5000, mean =  0.02, sd = 0.022),
                v3=rnorm(5000, mean =  0.04, sd = 0.022))

colnames(x) <- c("A", "B", "C")

# Summary statistics
mean_vec <- colMeans(x)
sd_vec   <- apply(x, 2, sd)
n        <- nrow(x)

error <- qnorm(0.975)*sd_vec/sqrt(n)
left  <- mean_vec - error
right <- mean_vec + error

sum_stat <- cbind(left, mean_vec, right)

# Melting the data
data <- melt(x)
# head(data); str(data)


ggplot(data, aes(x = value, y = variable)) +
  geom_density_ridges(aes(fill = variable), alpha=0.2, scale=0.8) +
  geom_boxploth(aes(fill = variable), width = 0.06, outlier.shape = NA)

我期待收到大家的来信!

谢谢。

【问题讨论】:

    标签: r ggplot2 plot confidence-interval


    【解决方案1】:

    要使用geom_errorbarh,您必须通过inherit.aes = FALSE 才能绘制均值和CI。 (注意:我还将您的 sum_stat 转换为数据框并添加一列 variable 以使绘图更容易)

    sum_stat <- data.frame(sum_stat)
    sum_stat$variable = rownames(sum_stat)
    
    ggplot(data, aes(x = value, y = variable)) +
      geom_density_ridges(aes(fill = variable), alpha=0.2, scale=0.8) +
      geom_point(inherit.aes = FALSE, data = sum_stat, 
                 aes(x= mean_vec, y = variable, color = variable),show.legend = FALSE)+
      geom_errorbarh(inherit.aes = FALSE, data = sum_stat, 
                     aes(xmin = left, xmax = right, y = variable, color = variable), 
                     height = 0.1, show.legend = FALSE)
    

    这是你要找的吗?

    【讨论】:

    • 我对你的代码做了一点修改,终于得到了我想看的东西!我衷心感谢它,dc37!!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-01-22
    • 2019-06-24
    • 1970-01-01
    • 2021-12-12
    • 2021-06-23
    • 2014-02-14
    • 2020-11-06
    相关资源
    最近更新 更多