I recently tried to add error bars to a bar plot I've created in ggplot in R. However, when I looked up geom_errorbar it appears that the only documented way to do so was to create another data frame that holds the ymin and ymax of each bar, and plot the bar plot using that stat='identity' property, which seems very cumbersome.
For instance, this is the example that appears in geom_errorbar help page:
df <- data.frame(
trt = factor(c(1, 1, 2, 2)),
resp = c(1, 5, 3, 4),
group = factor(c(1, 2, 1, 2)),
se = c(0.1, 0.3, 0.3, 0.2)
)
df2 <- df[c(1,3),]
# Define the top and bottom of the errorbars
limits <- aes(ymax = resp + se, ymin=resp - se)
p <- ggplot(df, aes(fill=group, y=resp, x=trt))
p + geom_bar(position="dodge", stat="identity")
# Because the bars and errorbars have different widths
# we need to specify how wide the objects we are dodging are
dodge <- position_dodge(width=0.9)
p + geom_bar(position=dodge) + geom_errorbar(limits, position=dodge, width=0.25)
Isn't there a better way to do it without having to use stat='identity' plotting?