Skip to content

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

1 message · jose luis

#
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[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