【问题标题】:Would like to plot mean of grouped data and add confidence limits想要绘制分组数据的平均值并添加置信限
【发布时间】:2020-03-14 18:38:28
【问题描述】:

我有需要计算和绘制平均值和 95% 置信限的数据,但我不知道我的代码哪里出错了。数据按年份分组,我考虑过使用 stat_smooth() 绘制置信区间区域,但我就是无法实现。如果我尝试我会得到一个错误:

错误:geom_path:如果您使用的是虚线或虚线,颜色, 大小和线型必须在整个线上保持不变

    library(ggplot2)
    library(dplyr) 
dat <- data.frame(cbind(rep(1:10,10),rnorm(100,600,sd=100),rnorm(100,400,sd=50),rnorm(100,700,sd=100)))
colnames(dat) <- c("year","S4","S5","S6")

    df<-data.frame(dat)
    ggplot(df)+
      geom_line(aes(x=year, y=mean(df$S4),colour=year)) +
      geom_line(aes(x=year, y=quantile(df$S4,0.95),colour=year),linetype="dotted") +
      geom_line(aes(x=year, y=quantile(df$S4,0.05),colour=year),linetype="dotted") 

【问题讨论】:

    标签: r ggplot2


    【解决方案1】:

    你能用stat_summary

    ggplot(df, aes(x = year, y = S4)) +
      stat_summary(geom = "line", fun = mean, linetype = "solid") +
      stat_summary(geom = "ribbon", fun.data= mean_cl_normal, fun.args = list(conf.int=0.95), alpha=.1)
    

    情节

    编辑:

    如果有多个变量/行,建议先使用pivot_longer 将数据放入“长”格式,然后再进行绘图。也许可以为不同的变量使用不同的颜色。

    df <- dat %>%
      pivot_longer(cols = c(S4, S5, S6), names_to = "variable", values_to = "value")
    
    ggplot(df, aes(x = year, y = value, color = variable)) +
      stat_summary(geom = "line", fun = mean, linetype = "solid") +
      stat_summary(geom = "ribbon", fun.data= mean_cl_normal, fun.args = list(conf.int=0.95), alpha=.1)
    

    【讨论】:

    • 如果我有多个变量,我是否必须创建一个全新的情节?不知道为什么我收到错误:错误:(从警告转换)忽略未知参数:fun
    • 如果您愿意,可以使用您想要绘制的 2-3 个变量来编辑您的问题。你想在同一个图上有多个置信区间的多条线吗?欢迎进一步描述。
    • 谢谢本。是的,我正在同一个情节上寻找多条带有 CL 的线。我尝试运行您的示例,但出现错误:错误:(从警告转换)忽略未知参数:有趣
    猜你喜欢
    • 2019-01-18
    • 1970-01-01
    • 1970-01-01
    • 2021-11-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多