Я пытаюсь аннотировать гистограмму с процентом наблюдений, попадающих в это ведро, в пределах аспекта. Этот вопрос очень тесно связан с этим вопросом: Показывайте % вместо количества в диаграммах категориальных переменных , но введение огранки вводит морщину. Ответ на связанный с этим вопрос состоит в том, чтобы использовать stat _bin с текстом geom, а затем создать метку следующим образом:
stat_bin(geom="text", aes(x = bins,
y =..count..,
label = paste(round(100*(..count../sum(..count..)),1), "%", sep="")
)
Это прекрасно работает для неграненого -графика. Однако с гранями эта сумма (..count.. )суммируется по всему набору наблюдений без учета граней. График ниже иллюстрирует проблему ---, обратите внимание, что проценты не составляют 100% в пределах панели.
Вот собственно код рисунка выше:
g.invite.distro <- ggplot(data = df.exp) +
geom_bar(aes(x = invite_bins)) +
facet_wrap(~cat1, ncol=3) +
stat_bin(geom="text", aes(x = invite_bins,
y =..count..,
label = paste(round(100*(..count../sum(..count..)),1), "%", sep="")
),
vjust = -1, size = 3) +
theme_bw() +
scale_y_continuous(limits = c(0, 3000))
ОБНОВЛЕНИЕ :В соответствии с запросом, вот небольшой пример -, создающий проблему:
df <- data.frame(x = c('a', 'a', 'b','b'), f = c('c', 'd','d','d'))
ggplot(data = df) + geom_bar(aes(x = x)) +
stat_bin(geom = "text", aes(
x = x,
y =..count.., label =..count../sum(..count..)), vjust = -1) +
facet_wrap(~f)