Добавьте итоги в верхней части каждого столбца

Я рисую свои данные и хочу отображать итоги поверх каждого столбца, но как только я добавляю общий счет, столбцы исчезают.

long<- data.frame(
            Name = c("abc","abc","abc","gif","gif","gif","xyz","xyz","xyz"),
            variable = c("a","b","c","a","b","c","c","b","a"),
            value = c(4,6,NA,2,8,1,6,NA,NA))

Код

p<-long %>%
  ggplot() + aes(Name, value, fill=variable) +
  geom_bar(stat="summary", position = "fill") +
  scale_y_continuous(labels = scales::percent_format()) +
  ylab("Total_num") +
  ggtitle("Totalnum") +
  theme(plot.title = element_text(size = 20, hjust = 0.5)) +
  theme(axis.text.x = element_text(angle = 75, vjust = 0.95, hjust=1))
  p+ stat_summary(fun.y = sum, aes(label = ..y.., group = Name)+
geom_text(stat='value', aes(group=Name, label=.."value"..), position = position_stack(vjust = 0.5))
Формы c голосовым вводом в React с помощью Speechly
Формы c голосовым вводом в React с помощью Speechly
Пытались ли вы когда-нибудь заполнить веб-форму в области электронной коммерции, которая требует много кликов и выбора? Вас попросят заполнить дату,...
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Будучи разработчиком веб-приложений, легко впасть в заблуждение, считая, что приложение без JavaScript не имеет права на жизнь. Нам становится удобно...
Flatpickr: простой модуль календаря для вашего приложения на React
Flatpickr: простой модуль календаря для вашего приложения на React
Если вы ищете пакет для быстрой интеграции календаря с выбором даты в ваше приложения, то библиотека Flatpickr отлично справится с этой задачей....
В чем разница между Promise и Observable?
В чем разница между Promise и Observable?
Разберитесь в этом вопросе, и вы значительно повысите уровень своей компетенции.
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Клиент для URL-адресов, cURL, позволяет взаимодействовать с множеством различных серверов по множеству различных протоколов с синтаксисом URL.
Четыре эффективных способа центрирования блочных элементов в CSS
Четыре эффективных способа центрирования блочных элементов в CSS
У каждого из нас бывали случаи, когда нам нужно отцентрировать блочный элемент, но мы не знаем, как это сделать. Даже если мы реализуем какой-то...
0
0
45
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы можете добиться этого, создав еще один df с суммой значений для каждого имени и передав его в geom_text()

long<- data.frame(
      Name = c("abc","abc","abc","gif","gif","gif","xyz","xyz","xyz"),
      variable = c("a","b","c","a","b","c","c","b","a"),
      value = c(4,6,NA,2,8,1,6,NA,NA))
    
    
long_totals <- long %>%
      group_by(Name) %>%
      summarise(Total = sum(value, na.rm = T))
    
    p <- ggplot()+
      geom_bar(data = long,
               aes(x = Name, 
                   y = value,
                   fill=variable),
               stat="summary", 
               position = "fill") +
      geom_text(data = long_totals,
                aes(y = 100,
                    x = Name,
                    label = Total),
                size = 7,
                position = position_fill(vjust = 1.02)) +
      scale_y_continuous(labels = scales::percent_format()) +
      ylab("Total_num") +
      ggtitle("Totalnum") +
      theme(plot.title = element_text(size = 20, hjust = 0.5)) +
      theme(axis.text.x = element_text(angle = 75, vjust = 0.95, hjust=1))            


   

enter image description here

Итого на имя. Таким образом, поверх первого такта должно быть 10, на 2-м такте 11 и на 3-м такте 6.

akang 17.05.2022 14:42

В порядке. Только что отредактированный с выводом, который вам нужен.

Lucca Nielsen 17.05.2022 14:52

Есть ли способ упорядочить эти столбцы в порядке убывания по переменной "c"? Таким образом, последний бар будет впереди, за ним средний, а затем первый будет последним.

akang 17.05.2022 19:53

Другие вопросы по теме