Существует две опции ggplot2
и geom_errorbar
или функция errbar
от Hmisc
Фрэнка Харрелла. Независимо от того, что вы выберете, вам нужно самостоятельно рассчитать расположение центров и конечных точек.
Мне не стоит возиться с репликацией ваших данных, поэтому приведу пример использования встроенного набора данных.
data(warpbreaks)
library(dplyr)
wb.summary = warpbreaks %>%
group_by(wool,tension) %>%
summarise(m = mean(breaks),
lb = mean(breaks) - 2 * sd(breaks),
ub = mean(breaks) + 2 * sd(breaks)) %>%
mutate(treatment = paste0(as.character(wool),
as.character(tension)))
Итак, просто чтобы увидеть, что у нас есть:
> wb.summary
# A tibble: 6 x 6
# Groups: wool [2]
wool tension m lb ub treatment
<fct> <fct> <dbl> <dbl> <dbl> <chr>
1 A L 44.6 8.36 80.8 AL
2 A M 24 6.68 41.3 AM
3 A H 24.6 4.01 45.1 AH
4 B L 28.2 8.50 47.9 BL
5 B M 28.8 9.92 47.6 BM
6 B H 18.8 8.99 28.6 BH
Сначала мы нарисуем ваш барплот:
library(ggplot2)
g = wb.summary %>%
ggplot(aes(x = treatment, y = m)) +
geom_col()
g
Теперь мы добавляем строки ошибок
g = g +
geom_errorbar(aes(ymin = lb, ymax = ub)) +
ylim(0, 85)
g