Estoy tratando de anotar un gráfico de barras con el porcentaje de observaciones que caen en ese cubo, dentro de a faceta. Esta pregunta está muy relacionada con esta pregunta: Show % instead of counts in charts of categorical variables pero la introducción de facetas introduce una arruga. La respuesta a la pregunta relacionada es utilizar stat_bin w/geom texto y luego hacer que las etiquetas se construye como así:Condition a ..count .. suma en la variable de faceting
stat_bin(geom="text", aes(x = bins,
y = ..count..,
label = paste(round(100*(..count../sum(..count..)),1), "%", sep="")
)
Esto funciona bien para una trama ONU facetas. Sin embargo, con las facetas, esta suma (... cuenta) se suma a toda la colección de observaciones sin tener en cuenta las facetas. El siguiente diagrama ilustra el problema: tenga en cuenta que los porcentajes no suman el 100% dentro de un panel.
Aquí la realidad de código para la figura anterior:
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))
ACTUALIZACIÓN: Según la petición, aquí hay un pequeño ejemplo de re-producción de la edición:
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)
Interesante pregunta, si usted nos dio los datos para reproducir el error que sería más probable que obtenga una respuesta. –
Lo siento, debería haber hecho eso. Hay un ejemplo ahora. –
También he enfrentado este problema, sería genial si ggplot se encargará de esto ... –