Наложение текстовой метки на всю линейчатую диаграмму

#r #ggplot2 #bar-chart

#r #ggplot2 #Гистограмма

Вопрос:

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

Как я могу наложить метку и центрировать ее по всей линейке, как показано на рисунке выше?

Вот что я пробовал:

 ggplot(my_NYC_Crimes, aes(x=Year, y=Crime.total))   
geom_bar(stat = "identity", fill= "#b43a74")  
scale_y_continuous(labels = scales::comma)   theme_minimal()  
theme(axis.title.x = element_blank())   theme(axis.title.y = element_blank()) 
  theme_void()   geom_text(aes(label = "Major felonies"), position = 
position_stack(0.5), color = "white")[enter image description here][1]
  

Комментарии:

1. Изображение не видно.

2. Спасибо, Аллан. Эта строка кода, которую вы включили в свой пример, была ключом к получению нужного мне результата: geom_label(label = «Серьезные уголовные преступления», x = 2010, y = 7500, size = 10, color = «white», fill = «#b33877», label.size = 0) Еще раз спасибо, Баскервиль

Ответ №1:

Всегда сложнее ответить на такого рода вопросы без исходных данных (или их образца). Однако, предполагая, что ваши данные выглядят примерно так:

 my_NYC_Crimes <- data.frame(Year = 2001:2019,
Crime.total = c(seq(32, 20, -1.1), 21, 23, 25, 23, 21, 20, 18, 17) * 1000)
  

Тогда главное — понять, что вы не хотите geom_label , чтобы она отображалась в позиционной эстетике. Вы можете добавить ее, просто указав позиции x, y, не заключая их в aes вызов:

 ggplot(my_NYC_Crimes, aes(x = Year, y = Crime.total))   
  geom_col(fill= "#b33877")  
  scale_y_continuous(breaks = 1:3 * 10000)  
  geom_label(label = "Major felonies", x = 2010, y = 7500, size = 10,
             color = "white", fill = "#b33877", label.size = 0)  
  theme_void()  
  theme(panel.grid.major.y = element_line())
  

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