class: center, middle, inverse, title-slide .title[ # VisualizaciĆ³n de datos con
{ggplot2}
] .subtitle[ ##
] .author[ ###
] --- ## ĀæQuĆ© vimos? <br> ā Conceptos bĆ”sicos de R <br> ā Pensar un proyecto de datos con R <br> ā Procesamiento de datos con `{tidyverse}` --- ## Hoja de Ruta <br> š ĀæPor quĆ© visualizar datos? š GramĆ”tica de los grĆ”ficos y `{ggplot2}` - Capas y el operador `+` (mĆ”s) š Armando un grĆ”fico de barras (columnas) - FunciĆ³n `geom_col()` š Chapa y pintura de un grĆ”fico (atributos) --- ## ConfiguraciĆ³n para esta clase <br> - Armar un proyeto de trabajo nuevo o abrir aquel con el que venĆamos trabajando - Cargar la base que surge del procesamiento del Ćndice [**(click acĆ” para descarga)**](https://estacion-r.github.io/intro_r_aaip/datos/output_visualizaciones_2024-07-23.xlsx) y chequear que estĆ© en la carpeta `datos` - Crear un **script** de trabajo - Carga la librerĆa `{tidyverse}` --- class: middle, center, logo-hide # ĀæPor quĆ© visualizar datos? <html> <hr color='#EB811B' size=1px width=1600px> </html> --- ## ĀæPor quĆ© visualizar? <br> - _"La visualizaciĆ³n es el proceso de hacer visibles los contrastes, ritmos y eventos que los datos expresan, que no podemos percibir cuando vienen en forma de Ć”ridas listas de nĆŗmeros y categorĆas."_ [^1] <br> - Interpretar / decodificar la informaciĆ³n de forma visual <br> - Guiar hacia el hallazago <br> [^1]: https://bitsandbricks.github.io/ciencia_de_datos_gente_sociable/visualizacion.html --- class: center, middle, logo-hide # ggplot2 <html> <p style="color:grey;" align:"left">Una forma de visualizar</p> </html> --- ## __ĀæQuĆ© es `{ggplot2}`?__ <br> - Una implementaciĆ³n del sistema **Grammar of graphics** (Wilkinson, 2005). <br> - Un esquema pensado en capas (datos --> plano (ejes **x** e **y**) --> geometrĆas) <br> - Un paquete de funciones de aplicaciĆ³n intuitiva. --- ## __ĀæPor quĆ© `{ggplot2}`?__ - Tiene un marco de referencia (El grammar of graphics) -- - Flexible, con especificaciones a nivel de capas. -- - Sistema de `themes`, que permiten _pulir_ la apariencia del grĆ”fico -- - Decenas de extensiones para ampliar la potencia del paquete -- - Comunidad activa y con mucha predisposiciĆ³n a ayudar. --- # ĀæA dĆ³nde vamos? ``` r library(tidyverse) library(rio) # Importo base base_viz <- import(here::here("datos/output_visualizaciones_2024-07-23.xlsx")) ``` ``` r head(base_viz) PerĆodo Tipo de SO 1 2Ā° Trimestre 2024 (Abril - Junio) Organismos Descentralizados 2 2Ā° Trimestre 2024 (Abril - Junio) Organismos Descentralizados 3 2Ā° Trimestre 2024 (Abril - Junio) Organismos Descentralizados 4 2Ā° Trimestre 2024 (Abril - Junio) Organismos Descentralizados 5 2Ā° Trimestre 2024 (Abril - Junio) Entes del Sector PĆŗblico Nacional 6 2Ā° Trimestre 2024 (Abril - Junio) Entes del Sector PĆŗblico Nacional Sujeto obligado TA TP IT 1 Instituto Nacional del Teatro 4.5 5.6 4.6 2 Agencia de Acceso a la InformaciĆ³n PĆŗblica 100.0 100.0 100.0 3 Instituto Nacional del CĆ”ncer 5.8 2.8 5.5 4 Instituto Nacional de TecnologĆa Industrial 82.6 66.7 81.0 5 Autoridad de Cuenca Matanza Riachuelo (ACUMAR) 59.7 58.3 59.6 6 Agencia de PlanificaciĆ³n (APLA) 30.0 40.3 31.0 ``` --- ## Preparo los datos - Calculo el promedio total de los Ćndices para todos los organismos ``` r base_grafico <- base_viz |> summarise(prom_ta = mean(TA), prom_tp = mean(TP), prom_ti = mean(IT)) ``` ``` r base_grafico prom_ta prom_tp prom_ti 1 43.68816 24.92237 41.81184 ``` --- ## Preparo los datos ``` r base_grafico <- base_grafico %>% pivot_longer(cols = starts_with("prom"), names_to = "tipo_indice", values_to = "promedio") ``` ``` r base_grafico # A tibble: 3 Ć 2 tipo_indice promedio <chr> <dbl> 1 prom_ta 43.7 2 prom_tp 24.9 3 prom_ti 41.8 ``` --- ## Armo grĆ”fico <img src="data:image/png;base64,#03-visualizacion_de_datos_files/figure-html/unnamed-chunk-9-1.png" width="60%" style="display: block; margin: auto;" /> --- ## El cĆ³digo ``` r ggplot(data = base_grafico, mapping = aes(x = tipo_indice, y = promedio)) + geom_col(aes(fill = tipo_indice)) + geom_hline(yintercept = 0) + ## Etiquetas geom_text(aes(label = round(promedio, 1), vjust = -0.5)) + ### Titulos labs(title = "Promedio total de los Ćndices", subtitle = "Argentina, aƱo 2024", x = "Tipo de Ćndice", y = "Valor del Ćndice", caption = "Fuente: AAIP") + ## Estetica theme_minimal() + theme(legend.position = "none") ``` --- # ĀæPor dĆ³nde empezamos? ## Cargamos el paquete ``` r library(ggplot2) ``` <br> o... <br> ``` r library(tidyverse) ``` --- ## GrĆ”fico en clave de capas <br> 3 Capas son las indispensables al pensar nuestro grĆ”fico: --- ## GrĆ”fico en clave de capas - Los **datos** (argumento: `data =`): - El dataframe que sirve de insumo <br> --- ## GrĆ”fico en clave de capas - Los **datos** (argumento: `data =`): - El dataframe que sirve de insumo <br> - Las **aesthetics** (funciĆ³n `aes()`: - Defino el vĆnculo entre los datos y las propiedades visuales (ejes x e y, por ej.) --- ## GrĆ”fico en clave de capas - Los **datos** (argumento: `data =`): - El dataframe que sirve de insumo <br> - Las **aesthetics** (funciĆ³n `aes()`: - Defino el vĆnculo entre los datos y las propiedades visuales (ejes x e y, por ej.) <br> - Las **geometrĆas** (funciĆ³n `geom_*()`: - La geometrĆa con la que se representan los datos --- ## GrĆ”fico en clave de capas <br> - **Pregunta-problema: Quiero representar los valores totales de los Ćndices:** - Transparencia Activa - Transparencia Proactiva - Ćndice de Transparencia --- ## GrĆ”fico en clave de capas - Preparo los datos: ``` r library(tidyverse) library(rio) base_viz <- import("datos/output_visualizaciones_2024-07-23.xlsx") base_grafico <- base_viz |> summarise(prom_ta = mean(TA), prom_tp = mean(TP), prom_ti = mean(IT)) %>% pivot_longer(cols = starts_with("prom"), names_to = "tipo_indice", values_to = "promedio") ``` --- ## GrĆ”fico en clave de capas <br> - AsĆ queda nuestra tabla: ``` r base_grafico # A tibble: 3 Ć 2 tipo_indice promedio <chr> <dbl> 1 prom_ta 43.7 2 prom_tp 24.9 3 prom_ti 41.8 ``` --- ## GrĆ”fico en clave de capas ``` r ggplot(data = base_grafico, aes(x = tipo_indice, y = promedio)) ``` <img src="data:image/png;base64,#03-visualizacion_de_datos_files/figure-html/ggplot-aesthetics-outside-1.png" width="300" /> --- ## GrĆ”fico en clave de capas ``` r ggplot(data = base_grafico, aes(x = tipo_indice, y = promedio)) + geom_col() ``` <img src="data:image/png;base64,#03-visualizacion_de_datos_files/figure-html/ggplot-aesthetics-outside-geom-1.png" width="300" /> --- class: center, middle, logo-hide # Chapa y pintura --- ## Chapa y pintura - Relleno ``` r ggplot(data = base_grafico, aes(x = tipo_indice, y = promedio)) + geom_col(fill = "red") ``` <img src="data:image/png;base64,#03-visualizacion_de_datos_files/figure-html/ggplot-aesthetics-outside-fill-1.png" width="300" /> --- ## Chapa y pintura - Relleno ``` r ggplot(data = base_grafico, aes(x = tipo_indice, y = promedio)) + geom_col(aes(fill = tipo_indice)) ``` <img src="data:image/png;base64,#03-visualizacion_de_datos_files/figure-html/ggplot-aesthetics-outside-fill-aes-1.png" width="300" /> --- ## Chapa y pintura - Contorno ``` r ggplot(data = base_grafico, aes(x = tipo_indice, y = promedio)) + geom_col(aes(fill = tipo_indice), color = "black") ``` <img src="data:image/png;base64,#03-visualizacion_de_datos_files/figure-html/ggplot-aesthetics-outside-color-1.png" width="300" /> --- ## Chapa y pintura - Referencias ``` r ggplot(data = base_grafico, aes(x = tipo_indice, y = promedio)) + geom_col(aes(fill = tipo_indice), color = "black") + labs(title = "Promedio Total por tipo de Ćndice") ``` <img src="data:image/png;base64,#03-visualizacion_de_datos_files/figure-html/ggplot-aesthetics-outside-labs1-1.png" width="300" /> --- ## Chapa y pintura - Referencias ``` r ggplot(data = base_grafico, aes(x = tipo_indice, y = promedio)) + geom_col(aes(fill = tipo_indice), color = "black") + labs(title = "Promedio Total por tipo de Ćndice", subtitle = "Argentina, aƱo 2024", x = "Tipo de Ćndice", y = "Valor del Ćndice", caption = "Fuente: AAIP") ``` <img src="data:image/png;base64,#03-visualizacion_de_datos_files/figure-html/ggplot-aesthetics-outside-labs2-1.png" width="300" /> --- ## Chapa y pintura - theme ``` r ggplot(data = base_grafico, aes(x = tipo_indice, y = promedio)) + geom_col(aes(fill = tipo_indice), color = "black") + labs(title = "Promedio Total por tipo de Ćndice", subtitle = "Argentina, aƱo 2024", x = "Tipo de Ćndice", y = "Valor del Ćndice", caption = "Fuente: AAIP") + theme_minimal() ``` <img src="data:image/png;base64,#03-visualizacion_de_datos_files/figure-html/ggplot-aesthetics-outside-theme-1.png" width="300" /> --- ## Chapa y pintura - theme ``` r ggplot(data = base_grafico, aes(x = tipo_indice, y = promedio)) + geom_col(aes(fill = tipo_indice), color = "black") + labs(title = "Promedio Total por tipo de Ćndice", subtitle = "Argentina, aƱo 2024", x = "Tipo de Ćndice", y = "Valor del Ćndice", caption = "Fuente: AAIP") + theme_minimal() + theme(legend.position = "none") ``` <img src="data:image/png;base64,#03-visualizacion_de_datos_files/figure-html/ggplot-aesthetics-outside-theme2-1.png" width="300" />