我正在尝试用一个方面内落入该桶的观察百分比来注释条形图。这个问题与这个问题非常密切相关: 在分类变量的图表中显示 % 而不是计数,但是分面的引入引入了皱纹。相关问题的答案是使用带有文本 geom 的 stat_bin,然后按如下方式构造标签:
stat_bin(geom="text", aes(x = bins,
y = ..count..,
label = paste(round(100*(..count../sum(..count..)),1), "%", sep="")
)
这适用于无面情节。然而,对于构面,这个 sum(..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)