Насколько мне известно, нет простого готового способа пометить гистограмму процентами. Вместо этого вам придется выполнять вычисления вручную. С этой целью я добавил вспомогательную функцию pct_bin
, которая вычисляет долю каждой группы на ячейку, используя значения ..x..
, ..count..
и ..group..
, возвращаемые stat_bin
. Попробуйте это:
library(ggplot2)
pct_bin <- function(group, x, count) {
count_bin <- tapply(count, x, sum)
count / rep(count_bin, length(unique(group)))
}
ggplot(mtcars, aes(mpg, fill = factor(am))) +
geom_histogram(position = "fill", bins = 7) +
geom_text(aes(label = ifelse(..group.. == 2, round(pct_bin(..group.., ..x.., ..count..), 2), ""),
vjust = ifelse(round(pct_bin(..group.., ..x.., ..count..), 2) < 1, -.5, 1.5)),
position = "fill", stat = "bin", bins = 7)