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):
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:
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