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

jose luis pepeceb en yahoo.es
Lun Jun 26 13:26:38 CEST 2017


Si quieres que te quede centrado el valor dentro de cada casilla



tabla.barras<-ddply(tabla.barras,.(Rangos), transform, Pos = ave(Asistentes,  FUN = cumsum) - Asistentes / 2)
ggplot(tabla.barras, aes(x = Rangos, y = Asistentes,  group = Rangos, fill = Clase)) +    geom_bar(stat= "identity")+ 
  geom_text(aes(label = Asistentes,y=Pos), size = 3) +   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)




 

    El Lunes 26 de junio de 2017 12:43, Mauricio Monsalvo <m.monsalvo en gmail.com> escribió:
 

 Bingo!! Muchas gracias, José Luis!
El 26 de junio de 2017, 7:13, jose luis <pepeceb en yahoo.es> escribió:


Y asi?  Usando group = Rangos, fill = Clase

ggplot(tabla.barras, aes(x = Rangos, y = Asistentes,  group = Rangos, fill = Clase)) +    geom_col(position = "stack")


 

    El Lunes 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: ggplot2Loading tidyverse: tibbleLoading tidyverse: tidyrLoading tidyverse: readrLoading tidyverse: purrrLoading tidyverse: dplyrConflicts with tidy packages ------------------------------ ------------------------------ --------------------------filter(): dplyr, statslag():    dplyr, statsWarning 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 Asistentes1   45d     EPI        4052    1a     EPI        8123    2a     EPI       16394    3a     EPI       22025    4a     EPI       19946    5a     EPI        2557   45d SemiEPI        6148    1a SemiEPI        8819    2a SemiEPI       217410   3a SemiEPI       325411   4a SemiEPI       293412   5a SemiEPI        66213  45d   NoEPI        56514   1a   NoEPI        31615   2a   NoEPI        61516   3a   NoEPI        95617   4a   NoEPI        84018   5a   NoEPI        609"
DF <- read.table(textConnection( Lines), header=T, as.is = TRUE)tabla.barras <- DFtabla.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 Ortegawww.qualityexcellence.es
El 25 de junio de 2017, 10:19, jose luis via R-help-es <r-help-es en r-project.org> escribió:



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 Asistentes1  De 45d     EPI        4052   De 1a     EPI        8123   De 2a     EPI       16394   De 3a     EPI       22025   De 4a     EPI       19946   De 5a     EPI        2557  De 45d SemiEPI        6148   De 1a SemiEPI        8819   De 2a SemiEPI       217410  De 3a SemiEPI       325411  De 4a SemiEPI       293412  De 5a SemiEPI        66213 De 45d   NoEPI        56514  De 1a   NoEPI        31615  De 2a   NoEPI        61516  De 3a   NoEPI        95617  De 4a   NoEPI        84018  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 -ClaseEstoy 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)))​
​-- 
Mauricio______________________________ _________________
R-help-es mailing list
R-help-es en r-project.org
https://stat.ethz.ch/mailman/l istinfo/r-help-es

   
______________________________ _________________
R-help-es mailing list
R-help-es en r-project.org
https://stat.ethz.ch/mailman/l istinfo/r-help-es




-- 
Saludos,
Carlos Ortega
www.qualityexcellence.es



-- 
Mauricio______________________________ _________________
R-help-es mailing list
R-help-es en r-project.org
https://stat.ethz.ch/mailman/ listinfo/r-help-es

   



-- 
Mauricio

   
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <https://stat.ethz.ch/pipermail/r-help-es/attachments/20170626/d5418770/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/d5418770/attachment-0004.png>
------------ próxima parte ------------
A non-text attachment was scrubbed...
Name: image.png
Type: image/png
Size: 34748 bytes
Desc: no disponible
URL: <https://stat.ethz.ch/pipermail/r-help-es/attachments/20170626/d5418770/attachment-0005.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/d5418770/attachment-0006.png>
------------ próxima parte ------------
A non-text attachment was scrubbed...
Name: image.png
Type: image/png
Size: 33688 bytes
Desc: no disponible
URL: <https://stat.ethz.ch/pipermail/r-help-es/attachments/20170626/d5418770/attachment-0007.png>


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