当 SEM 已在数据集中计算时,将 SEM 条添加到 ggline 图

adding SEM bars to ggline graph when SEM is already calculated in dataset

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

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 的方式)来制作图形看起来像这样

知道怎么做吗?

你可以写:

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"
))