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

Mauricio Monsalvo m.monsalvo en gmail.com
Lun Jun 26 13:51:18 CEST 2017


Probé a sugerencia de José Luis con un group = Rangos en el aes() y
funcionó!
Cuando vuelva a estar en la misma compu, te comparto el data.frame para
chequear la estructura.
Muchas gracias!


El 26 de junio de 2017, 8:01, Carlos Ortega <cof en qualityexcellence.es>
escribió:

> Hola Mauricio,
>
> Debiera de funcionar, yo estoy usando la misma versión de ggplot que tú...
> Si puedes compartir el data.frame antes de llamar a ggplot por ver si
> tiene la misma estructura que lo que compartiste...
>
> Gracias,
> Carlos.
>
> El 26 de junio de 2017, 11:39, Mauricio Monsalvo <m.monsalvo en gmail.com>
> escribió:
>
>> Muchas gracias a los dos por las respuestas.
>> Estoy usando tidiverse, que debe ser la del conflicto. Pero probé
>> reseteando el R y corriendo la sintaxis de Carlos sola y tampoco
>> funciona...
>> library(tidyverse)
>> Loading tidyverse: ggplot2
>> Loading tidyverse: tibble
>> Loading tidyverse: tidyr
>> Loading tidyverse: readr
>> Loading tidyverse: purrr
>> Loading tidyverse: dplyr
>> Conflicts with tidy packages ------------------------------
>> --------------------------------------------------------
>> filter(): dplyr, stats
>> lag():    dplyr, stats
>> Warning messages:
>> 1: package ‘tidyverse’ was built under R version 3.3.3
>> 2: package ‘tibble’ was built under R version 3.3.3
>> 3: package ‘tidyr’ was built under R version 3.3.3
>> 4: package ‘readr’ was built under R version 3.3.3
>> 5: package ‘purrr’ was built under R version 3.3.3
>> Los datos de la sesión son los siguientes (Imagino que tengo que
>> actualizar el propio R tambbién):
>> > sessionInfo()
>> R version 3.3.2 (2016-10-31)
>> Platform: x86_64-w64-mingw32/x64 (64-bit)
>> Running under: Windows >= 8 x64 (build 9200)
>>
>> locale:
>> [1] LC_COLLATE=Spanish_Argentina.1252  LC_CTYPE=Spanish_Argentina.1252
>>  LC_MONETARY=Spanish_Argentina.1252
>> [4] LC_NUMERIC=C                       LC_TIME=Spanish_Argentina.1252
>>
>> attached base packages:
>> [1] stats     graphics  grDevices utils     datasets  methods   base
>>
>> other attached packages:
>>  [1] openxlsx_4.0.17   stringr_1.2.0     data.table_1.10.4 foreign_0.8-67
>>    dplyr_0.5.0       purrr_0.2.2.2
>>  [7] readr_1.1.1       tidyr_0.6.3       tibble_1.3.3      *ggplot2_2.2.1
>>     *tidyverse_1.1.1
>>
>> loaded via a namespace (and not attached):
>>  [1] Rcpp_0.12.11     cellranger_1.1.0 plyr_1.8.4       forcats_0.2.0
>>  tools_3.3.2      jsonlite_1.5
>>  [7] lubridate_1.6.0  gtable_0.2.0     nlme_3.1-128     lattice_0.20-35
>>  rlang_0.1.1      psych_1.7.5
>> [13] DBI_0.6-1        parallel_3.3.2   haven_1.0.0      httr_1.2.1
>> xml2_1.1.1       hms_0.3
>> [19] grid_3.3.2       R6_2.2.1         readxl_1.0.0     reshape2_1.4.2
>> modelr_0.1.0     magrittr_1.5
>> [25] scales_0.4.1     assertthat_0.2.0 mnormt_1.5-5     rvest_0.3.2
>>  colorspace_1.3-2 stringi_1.1.5
>> [31] lazyeval_0.2.0   munsell_0.4.3    broom_0.4.2
>>
>>
>> El 25 de junio de 2017, 5:26, Carlos Ortega <cof en qualityexcellence.es>
>> escribió:
>>
>>> 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
>>>
>>
>>
>>
>> --
>> Mauricio
>>
>
>
>
> --
> Saludos,
> Carlos Ortega
> www.qualityexcellence.es
>



-- 
Mauricio
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <https://stat.ethz.ch/pipermail/r-help-es/attachments/20170626/a22cb711/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/20170626/a22cb711/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/20170626/a22cb711/attachment-0003.png>


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