GGPlot2:错误栏按条件分组

时间:2019-03-05 15:45:28

标签: r ggplot2

使用这些数据:

condition <- c('control', 'control', 'causal', 'causal') # grouping condition
shift <- c('first', 'second') # subgrouping condition
means <- c(-30, 60, -20, 40) # means per group
se <- c(6, 10, 7, 9) # Standard errors per group
plotdata2 <- data.frame(condition, shift, means, se)

我想在下面的图中绘制误差线:

ggplot(plotdata2, aes(x=condition, y=means, fill=shift)) +
  geom_bar(stat='identity', width = .6) +
  coord_flip() 

enter image description here

但是,使用

ggplot(plotdata2, aes(x=condition, y=means, fill=shift)) +
  geom_bar(stat='identity', width = .6) +
  coord_flip() +
  geom_errorbar(aes(ymax = min(se)-0.5, ymin=max(se)+0.5))

enter image description here

不起作用,因为误差线占用SE的全局ymax和ymin。如何使用各自条件的min(se)和max(se)制作两个不同的误差线?

我没有原始数据;因此,我只能使用此摘要。

1 个答案:

答案 0 :(得分:1)

您只是忘记将se添加到y = means

ggplot(plotdata2, aes(x=condition, y=means, fill=shift)) +
  geom_bar(stat='identity', width = 0.6) +
  geom_errorbar(aes(ymax = means - se - 0.5, ymin = means + se + 0.5), width = 0.6) +
  coord_flip() 

enter image description here