Я считаю невозможным создать соответствующие метки при построении двух категориальных переменных в гистограмме со 100% накоплением. Рассмотрим код ниже (вымышленный набор данных, который воспроизводит мою проблему):
data <- data.frame(
gender=sample(c("M", "F"), 40, replace=TRUE),
football=sample(c("Yes", "No"), 40, replace=TRUE)
)
Что я пытаюсь сделать, так это создать гистограмму со 100% накоплением и отобразить метки для каждой категории. Мне удалось создать сюжет с помощью следующего кода (оба способа производят один и тот же сюжет):
ggplot(data, aes(gender))+
geom_bar(aes(fill=football), position="fill")+
scale_y_continuous(labels=percent)
ggplot(data, aes(gender, ..count..))+
geom_bar(aes(fill=football), position="fill", stat="count")+
scale_y_continuous(labels=percent)
Нажмите здесь, чтобы увидеть график
Я понимаю, что для создания процентных меток мне нужно сначала вычислить совокупную сумму. Однако я не могу найти способ правильно использовать «cumsum (var)» с категориальной переменной. Самое близкое, что у меня есть, это следующее:
ggplot(data, aes(gender))+
geom_bar(aes(fill=football), position="fill")+
geom_text(aes(label=(..count../sum(..count..))*100, fill=football), stat="count")+
scale_y_continuous(labels=percent)
Но если вы воспроизведете приведенный выше код, вы увидите, что проценты относятся к общему количеству наблюдений (а не к категориям внутри «пола»), а ось Y становится беспорядочной. Любая помощь будет по-настоящему оценена. Спасибо!