【问题标题】:adding SEM bars to ggline graph when SEM is already calculated in dataset当 SEM 已在数据集中计算时,将 SEM 条添加到 ggline 图中
【发布时间】:2020-07-13 13:55:41
【问题描述】:

我有一个看起来像这样的数据集

well    time        mm          sem
x       basal       83.96792    8.068338
x       stimulus1   153.17250   8.338465
x       recovery    60.45712    5.97283
x       stimulus2   154.26550   6.533665

以及由此代码制作的图表

    ggline(df, x = 'time', y = 'mm', color = 'well', palette = c("#00AFBB", "#E7B800")) + 
  theme_grey()

我想用我已经计算出的 SEM 数字将 SEM 条添加到四个数据点中的每一个(四个点中的每一个都是持续时间的总和,所以这就是我为每个点创建一个 SEM 的方式)以使图表看起来像这样

有什么想法吗?

【问题讨论】:

    标签: r ggplot2 standard-error


    【解决方案1】:

    你可以写:

    ggplot(df, aes(x  = time, y = mm, group = well)+
       geom_point()+
       geom_line()+
       geom_errorbar(aes(ymin = mm-sem, ymax = mm+sem), width = 0.2)
    

    所以,它应该是这样的:

    但根据您的数据框和代码,我认为您更需要这样的东西:

    ggplot(df, aes(x = factor(time,unique(time)), y =mm, group = well, color = time))+
      geom_point()+
      geom_errorbar(aes(ymin = mm-sem, ymax = mm+sem), width = 0.2)+
      scale_color_manual(values = rep(c("#00AFBB", "#E7B800"),2))
    

    它回答了你的问题吗?


    可重现的示例

    structure(list(well = c("x", "x", "x", "x"), time = c("basal", 
    "stimulus1", "recovery", "stimulus2"), mm = c(83.96792, 153.1725, 
    60.45712, 154.2655), sem = c(8.068338, 8.338465, 5.97283, 6.533665
    )), row.names = c(NA, -4L), class = c("data.table", "data.frame"
    ))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-10-17
      • 1970-01-01
      • 2019-10-23
      • 1970-01-01
      • 2022-11-14
      • 1970-01-01
      • 1970-01-01
      • 2023-03-20
      相关资源
      最近更新 更多