#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))