В ggplot2 мои процентные метки расположены неправильно

#r #ggplot2

#r #ggplot2

Вопрос:

рис Я пытаюсь пометить проценты на своих гистограммах со 100%-ным накоплением (см. Изображение). Я вычисляю проценты в первом блоке ниже, а затем запускаю свой ggplot. Вы знаете, что я делаю неправильно, почему мои проценты отображаются таким образом?

 library(scales)
percentData = surveyds %>%
  group_by(qtext, X_Gender, response) %>% 
  summarise(N = n()) %>% 
  mutate(prop = N/sum(N))
percentData$prop = label_percent(accuracy = 1)(percentData$prop) #make percent from decimal

surveyds$responsef = factor(
  surveyds$response,
  levels = c("Poor","Fair","Good","Very good", "Excellent"),
  ordered = TRUE
) #Order bars

#Run visual
ggplot(data =subset(surveyds, !is.na(responsef)))  #responsef is my response factored
  geom_bar(aes(x = X_Gender, fill = responsef), position = 'fill', width = 0.5) 
  facet_grid(rows = vars(qtext))  #qtext is my question text
  coord_flip() 
  ylab('Proportion') 
  xlab('question') 
  ggtitle('Change') 
  geom_text(data = percentData, aes(y = N, label = prop, x = X_Gender),
            position=position_fill(vjust=0.5)) 
  

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

1. Пожалуйста, поделитесь примером surveyds использования dput(surveyds) , иначе ваша проблема не может быть воспроизведена!

2. Спасибо, что взглянули. К сожалению, я не могу поделиться данными, но я думаю, что знаю проблему. Метки перевернуты, начиная с верхней части моего изображения Мужчины: 1% должно быть для бедных, 7% для справедливых, 15% для хороших и т. Д. Вы знаете, как наложить их в обратном порядке? Я попробовал reverse = TRUE, это не исправило. geom_text(данные = процентные данные, aes(y = N, label = prop, x = X_Gender), позиция = position_fill(vjust= 1, reverse = TRUE))

Ответ №1:

Я понял это. Необходимо добавить аргумент заполнения в мой geom_text.

 geom_text(data = percentData, aes(fill = responsef, y = N, label = prop, x = X_Gender,),
            position=position_fill(vjust=0.5))