27.3 Alternativa para la realización de una gráfica de distribución de frecuencias

El par y = after_stat(prop), group = 1 no es intuitivo. Para entenderlo, se realiza el cálculo a mano:

Con la combinación dplyr count y mutate se logra la distribución de frecuencias:

(resumen_estrato <- saber %>%
  count(fami_estratovivienda) %>%
  mutate(Porcentaje = n/sum(n)*100))
##   fami_estratovivienda    n Porcentaje
## 1                    1 1628 29.8059319
## 2                    2 1884 34.4928598
## 3                    3 1096 20.0659099
## 4                    4  248  4.5404614
## 5                    5   68  1.2449652
## 6                    6   40  0.7323325
## 7                Rural  191  3.4968876
## 8                 <NA>  307  5.6206518

Posteriormente, se elabora la gráfica con base en el objeto recién creado:

ggplot(data = resumen_estrato) +
  aes(x = fami_estratovivienda, y = Porcentaje) +
  geom_bar(stat = "identity", fill = "darkolivegreen4", 
           color = "olivedrab4", alpha = 0.2) +
  labs(title = "Frecuencia por estrato", 
       x = "Estrato", y = "Proporción") 

geom_col() es una mejor alternativa en este caso ya que utiliza stat_identity() por defecto, es decir, deja los datos tal cual. geom_col(), requiere necesariamente que se especifique una variable para el eje y.

ggplot(data = resumen_estrato) +
  aes(x = fami_estratovivienda, y = Porcentaje) +
  geom_col(fill = "darkolivegreen4", 
           color = "olivedrab4", alpha = 0.2) +
  labs(title = "Frecuencia por estrato", 
       x = "Estrato", y = "Proporción")