Вы можете разместить свою аннотацию в соответствии с количеством уровней вашей переменной x. Здесь мы будем использовать carb
вместо gear
для демонстрации:
mtcars %>%
mutate(carb = as.factor(as.character(carb))) %>%
group_by(carb) %>% summarise(qsec = sum(qsec)) %>%
mutate(qsec_index = qsec / mean(qsec)) %>%
ggplot() +
geom_col(aes(carb, qsec_index)) +
geom_hline(aes(yintercept = 1)) +
geom_text(aes(x = length(levels(carb)) + .4, y = 1.02, label = 'Average'),
hjust = 1, vjust = -1)

, и все равно будет работать, как и ожидалось, с gear
:
mtcars %>%
mutate(gear = as.factor(as.character(gear))) %>%
group_by(gear) %>% summarise(qsec = sum(qsec)) %>%
mutate(qsec_index = qsec / mean(qsec)) %>%
ggplot() +
geom_col(aes(gear, qsec_index)) +
geom_hline(aes(yintercept = 1)) +
geom_text(aes(x = length(levels(gear)) + .4, y = 1.02, label = 'Average'),
hjust = 1, vjust = -1)
Создано в 2020-04-07 пакетом представительство (v0.3.0)