varias superponer los grafico graficas ggplot etiquetas escala ejes como cambiar barras r ggplot2

superponer - Gráfico de barras apiladas en R(ggplot2) con eje y barras como porcentaje de conteos



superponer graficas en r ggplot (1)

Para el primer gráfico, simplemente agrega position = ''fill'' a tu línea geom_bar. En realidad no necesita escalar los conteos ya que ggplot tiene una forma de hacerlo automáticamente.

ggplot(dat, aes(x = fruit)) + geom_bar(aes(fill = variable), position = ''fill'')

Soy un principiante con ggplot2 y tengo una pregunta sobre generar un diagrama de barras apiladas. Revisé el libro y la página web dedicada, pero no puedo resolver el problema. Tengo dos factores, uno de los cuales tiene 2 niveles (presencia-ausencia), los otros 10 niveles. Vamos a llamar a estos dos "variable" y "fruta".

Me gustaría crear un diagrama de barras apiladas donde cada barra refleje un tipo de fruta y el número de observaciones de presencia-ausencia en "variable" se apile una encima de la otra. Esto es relativamente fácil (vea el código para el diagrama 1 a continuación), pero también me gustaría que las barras y el eje y expresen el número de conteos de presencia-ausencia en "variable" como un porcentaje. En otras palabras, todas las barras deben tener la misma altura (lo que refleja un total de 100%) y los recuentos de observaciones de presencia-ausencia deben convertirse en porcentajes.

Puedo cambiar la escala del eje y a un porcentaje usando ..count .. * 100 / sum (.. count ..) pero no puedo descifrar cómo convertir las barras reales. Creé otra trama con facetas (código para la gráfica 2 a continuación) que logra lo que quiero en términos de porcentajes, pero preferiría las dos barras una encima de la otra. ¿Alguien tiene una idea de cómo lograr esto? He proporcionado datos ficticios y ejemplos reproducibles. Gracias por cualquier ayuda.

Steve

dat <- data.frame( fruit=c("Apple", "Apple", "Orange", "Orange", "Orange", "Orange", "Orange", "Pear", "Pear", "Pear"), variable=c("Present", "Absent", "Present", "Present", "Present", "Present", "Absent", "Absent", "Absent", "Present") ) # stacked bar plot ggplot(dat, aes(x = fruit, fill = variable) ) + geom_bar( aes(y = ..count..*100/sum(..count..) ) ) + xlab("Fruit") + ylab("Would like this to be percentage") + scale_fill_manual("Condition", values = alpha( c("firebrick", "dodgerblue4"), 1) )

# with faceting ggplot(dat, aes(x = variable, fill = variable) ) + geom_bar( aes(y = ..count..*100/sum(..count..) ) ) + facet_grid(. ~ fruit) + xlab("Fruit") + ylab("Would like this to be percentage") + scale_fill_manual("Condition", values = alpha( c("firebrick", "dodgerblue4"), 1) )