Example 1
# data
DF <- data.frame(
trt = factor(c(1, 1, 2, 2)),
resp = c(1, 5, 3, 4),
group = factor(c(1, 2, 1, 2)),
upper = c(1.1, 5.3, 3.3, 4.2),
lower = c(0.8, 4.6, 2.4, 3.6)
)
# geom_point
g <- ggplot(data=DF, mapping=aes(trt, resp, colour = group))
g <- g + geom_point(size=5)
g

# geom_errorbar
g <- ggplot(data=DF, mapping=aes(trt, resp, colour = group))
g <- g + geom_point(size=5)
g <- g + geom_errorbar(aes(ymin = lower, ymax = upper), width = 0.2)
g

# geom_crossbar
g <- ggplot(data=DF, mapping=aes(trt, resp, colour = group))
g <- g + geom_crossbar(aes(ymin = lower, ymax = upper), width = 0.2)
g

# Draw lines connecting group means
g <- ggplot(data=DF, mapping=aes(trt, resp, colour = group))
g <- g + geom_point(size=5)
g <- g + geom_errorbar(aes(ymin = lower, ymax = upper), width = 0.2)
g <- g + geom_line(aes(group = group))
g + theme_bw()

Example 2
# data
DF <- data.frame(
trt = factor(c(1, 1, 2, 2)),
resp = c(1, 5, 3, 4),
group = factor(c(1, 2, 1, 2)),
upper = c(1.1, 5.3, 3.3, 4.2),
lower = c(0.8, 4.6, 2.4, 3.6)
)
# Option 1: geom_bar
g <- ggplot(data=DF, mapping=aes(trt, resp, fill = group))
g <- g + geom_bar(position='dodge', stat='identity')
g

# Option 2: geom_bar
g <- ggplot(data=DF, mapping=aes(trt, resp, fill = group))
g <- g + geom_bar(position=position_dodge(), stat='identity')
g

# geom_errorbar
g <- ggplot(data=DF, mapping=aes(trt, resp, fill = group))
g <- g + geom_bar(position=position_dodge(), stat='identity')
g <- g + geom_errorbar(aes(ymin = lower, ymax = upper), width = 0.2)
g

# geom_errorbar position
g <- ggplot(data=DF, mapping=aes(trt, resp, fill = group))
g <- g + geom_bar(position=position_dodge(), stat='identity')
g <- g + geom_errorbar(aes(ymin = lower, ymax = upper),
width = 0.5, position=position_dodge(width=0.9))
g + theme_bw()
