Geom_Text не размещает метку vjust над Geom_Bar

Я следил за кодом из этот пост, но у меня он не работает. Вот мой код и скриншот ниже. Не могли бы вы помочь мне отцентрировать этикетку с интервалом прямо над полосой?

Щелкните здесь - снимок экрана

p <- ggplot(data=mrc, aes(x = Year, y = Total, fill = Year)) + 
  geom_bar(stat="identity", position = "dodge") +
  geom_text(
        aes(x = Year, y = Total, label = Total),
        position = position_dodge(width = 1),
        vjust = -0.5, size = 3
  ) +
  theme_bw() +
  scale_fill_manual(values = c("#115740","#B9975B","#D0D3D4","#F0B323")) +
  theme(axis.title.x=element_blank(),
        axis.title.y=element_blank(),
        legend.position = "none",
        plot.title = element_text(hjust = 0.5, face = "bold", colour = "#B9975B")) +
  ggtitle("Petitions") 

ggplotly(p)

person Willy    schedule 02.07.2019    source источник
comment
Пожалуйста, поделитесь своими данными (mrc), чтобы сделать их воспроизводимыми   -  person Tung    schedule 03.07.2019
comment
Не имеет отношения, но вы можете упростить свой код, используя geom_col() вместо geom_bar(stat="identity", position = "dodge") и опуская аргумент position = для geom_text.   -  person neilfws    schedule 03.07.2019
comment
@neilfws Спасибо за советника. Зачем вместо этого использовать geom_col ()? А зачем опускать позицию?   -  person Willy    schedule 03.07.2019
comment
@Willy меньше набирает :) и позиция в этом случае не имеет значения.   -  person neilfws    schedule 03.07.2019


Ответы (1)


Проблема здесь в ggplotly. Одно из решений - использовать style(textposition = "top").

Воссоздание ваших данных:

mrc <- data.frame(Year = c("2015-16", "2016-17", "2017-18", "2018-19"),
                  Total = c(225, 461, 471, 230),
                  stringsAsFactors = FALSE)

Запуск первого раздела вашего кода для генерации p:

p

введите здесь описание изображения

Все хорошо. Но результат с использованием ggplotly:

ggplotly(p)

введите здесь описание изображения

Добавление style():

ggplotly(p) %>% style(textposition = "top")

введите здесь описание изображения

person neilfws    schedule 02.07.2019
comment
Большое спасибо! Я даже не думал, что ggplotly был причиной проблемы. Не могли бы вы объяснить свой мыслительный процесс по поиску виновника и решения? - person Willy; 03.07.2019
comment
@Willy Я просто сначала запустил стандартный ggplot, а затем проверил разницу после ggplotly. Думаю, я уже видел предыдущие вопросы, в которых ggplotly тоже вызывал проблемы, поэтому я готов быть подозрительным. - person neilfws; 03.07.2019