[R-es] Orden de categorías en gráficos de barras (position = "stack")

Carlos Ortega cof en qualityexcellence.es
Dom Jun 25 10:26:02 CEST 2017


Hola,

Mira la versión de ggplot2 que estás usando por tenerla actualizada a la
última...
A mi me funciona introduciendo algún cambio  salvo la última línea cuando
cambias el tema...

#-----------

Lines <- " id   Rangos   Clase Asistentes
1   45d     EPI        405
2    1a     EPI        812
3    2a     EPI       1639
4    3a     EPI       2202
5    4a     EPI       1994
6    5a     EPI        255
7   45d SemiEPI        614
8    1a SemiEPI        881
9    2a SemiEPI       2174
10   3a SemiEPI       3254
11   4a SemiEPI       2934
12   5a SemiEPI        662
13  45d   NoEPI        565
14   1a   NoEPI        316
15   2a   NoEPI        615
16   3a   NoEPI        956
17   4a   NoEPI        840
18   5a   NoEPI        609
"

DF <- read.table(textConnection(Lines), header=T, as.is = TRUE)
tabla.barras <- DF
tabla.barras$Clase2 <- factor(tabla.barras$Clase, levels=c("EPI",
"SemiEPI", "NoEPI"))

library(ggplot2)

subtit.todos <- "Todos los Espacios (N = 311)."
caption <- 'FLACSO - UNICEF - SENAF (2017)'
ggplot(tabla.barras, aes(x = Rangos, y = Asistentes,  group = Clase2, fill
= Clase2)) +
  geom_col(position = "stack") +
  geom_text(aes(label = Asistentes), position = position_stack(), vjust =
1, size = 4) +
  labs(title = "Asistentes por tipo de servicio según tramo de edad."
       , subtitle = subtit.todos
       , x = "", y = "Cantidad de asistentes" ) +
       # , caption = caption) +
  theme(legend.position = "bottom", legend.direction = "horizontal",
legend.title = element_blank()) +
  guides(fill = guide_legend(nrow = 1), color = guide_legend(nrow = 1),
size = 3)

#-----------

Saludos,
Carlos Ortega
www.qualityexcellence.es

El 25 de junio de 2017, 10:19, jose luis via R-help-es <
r-help-es en r-project.org> escribió:

> [image: Imagen en el mensaje]
>
> Es curioso porque aplicando tu script me queda como tu quieres que te
> quede a ti no?
> No he hecho nada que no hayas hecho tu
>
>
> ggplot(tabla.barras, aes(x = Rangos, y = Asistentes, fill = Clase)) +
>      geom_bar(stat = "identity", position = "stack") +
>      geom_text(aes(label = Asistentes), position = position_stack(), vjust
> = 1, size = 4) +
>      labs(title = "Asistentes por tipo de servicio según tramo de edad."
>           , subtitle = subtit.todos
>           , x = "", y = "Cantidad de asistentes"
>           , caption = caption)
>
>
>
> El Sábado 24 de junio de 2017 23:07, Mauricio Monsalvo <
> m.monsalvo en gmail.com> escribió:
>
>
> ​​
> Hola.
> Estoy intentando ordenar el gráfico tal que las columnas se apilen en el
> siguiente orden: debajo, los EPI; los SemiEPI en el medio y los NoEpi
> arriba de todo.
> Estos son mis datos:
> > tabla.barras
>    Rangos   Clase Asistentes
> 1  De 45d     EPI        405
> 2   De 1a     EPI        812
> 3   De 2a     EPI       1639
> 4   De 3a     EPI       2202
> 5   De 4a     EPI       1994
> 6   De 5a     EPI        255
> 7  De 45d SemiEPI        614
> 8   De 1a SemiEPI        881
> 9   De 2a SemiEPI       2174
> 10  De 3a SemiEPI       3254
> 11  De 4a SemiEPI       2934
> 12  De 5a SemiEPI        662
> 13 De 45d   NoEPI        565
> 14  De 1a   NoEPI        316
> 15  De 2a   NoEPI        615
> 16  De 3a   NoEPI        956
> 17  De 4a   NoEPI        840
> 18  De 5a   NoEPI        609
> ​Probé cambiando el orden en el factor, pero no altera el orden en el
> gráfico:​
> ​tabla.barras$Clase <- as.factor(tabla.barras$Clase)
> factor(tabla.barras$Clase, levels=c("EPI", "SemiEPI", "NoEPI"))
> Ni:
> ordered(tabla.barras$Clase, levels=c("EPI", "SemiEPI", "NoEPI"))
> Tampoco parece alterarlo el ordenar la tabla como:
> tabla.barras[order(Clase)] # ni -Clase
> Estoy seguro que el orden en el ggplot2 lo pone el orden que trae la tabla
> con los datos, pero estoy perdido por los resultados.
> subtit.todos <- "Todos los Espacios (N = 311)."
> caption <- 'FLACSO - UNICEF - SENAF (2017)'
> ggplot(tabla.barras, aes(x = Rangos, y = Asistentes, fill = Clase)) + #
>      geom_bar(stat = "identity", position = "stack") +
>      geom_text(aes(label = Asistentes), position = position_stack(), vjust
> = 1, size = 4) +
>      labs(title = "Asistentes por tipo de servicio según tramo de edad."
>           , subtitle = subtit.todos
>           , x = "", y = "Cantidad de asistentes"
>           , caption = caption) +
>      theme(legend.position = "bottom", legend.direction = "vertical",
> legend.title = element_blank()) +
>      guides(fill = guide_legend(nrow = 1), color = guide_legend(nrow = 1),
> size = 3) +
>      theme(plot.caption = element_text(size = 8, hjust = 0, margin =
> margin(t = 15)))​
> [image: Imágenes integradas 1]
>> --
> Mauricio
> _______________________________________________
> R-help-es mailing list
> R-help-es en r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-help-es
>
>
> _______________________________________________
> R-help-es mailing list
> R-help-es en r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-help-es
>



-- 
Saludos,
Carlos Ortega
www.qualityexcellence.es
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <https://stat.ethz.ch/pipermail/r-help-es/attachments/20170625/079fa027/attachment-0001.html>
------------ próxima parte ------------
A non-text attachment was scrubbed...
Name: image.png
Type: image/png
Size: 66321 bytes
Desc: no disponible
URL: <https://stat.ethz.ch/pipermail/r-help-es/attachments/20170625/079fa027/attachment-0002.png>
------------ próxima parte ------------
A non-text attachment was scrubbed...
Name: image.png
Type: image/png
Size: 67964 bytes
Desc: no disponible
URL: <https://stat.ethz.ch/pipermail/r-help-es/attachments/20170625/079fa027/attachment-0003.png>


Más información sobre la lista de distribución R-help-es