class: left, bottom, inverse background-image: url(Figuras/UC2.png) background-position: 86% 10% background-size: 28% # Clase 08: Visualización de datos - Parte 1 ---- ## **Computación Estadística** ### Prof. Ana María Alvarado ### Primer Semestre 2024 <br> --- class: left, middle # La clase de hoy ---- <br/> .pull-left[ .left[ * [Introducción](#int) * [Gramática de los gráficos](#gram) * [Customización de gráficos](#const) ] <!--end of left-column--> ] <!--end of right-column--> .pull-right[ .left[ * [Paneles gráficos](#paneles) * [Taller práctico](#taller) * [Referencias y material complementario](#adios) ] ] <br/> <br/> --- class: left, middle # La clase de hoy ---- ## Packages de esta clase .pull-left[ * `ggplot2` * `dplyr` * `rio` ] .pull-right[ * `dslabs` * `plotly` * `RColorBrewer` ] ## Algunas funciones de esta clase .pull-left[ * `str()` * `import()` * `ggplot2()` * `aes()`] .pull-right[ * `geom_point()` * `geom_line()` * `geom_histogram()` * `geom_bar()`] --- name: int class: left, middle, inverse # Introducción --- # ¿Qué es un gráfico? Un gráfico es una representación visual de datos estadísticos, de manera tal que podamos interpretarlos, analizarlos y entenderlos de forma más sencilla. <br> -- ### ¿Cuándo hacemos gráficos? -- * Cuando deseamos realizar un **análisis exploratorio de datos**, por ejemplo, descubrir el comportamiento o distribución variable. -- * Cuando necesitamos **exhibir** los resultados de un análisis al **público**, en este caso solemos prestarle más atención a la **estética** de los gráficos. --- # Gráficos en R <p>R base tiene herramientas gráficas limitadas, tanto en la cantidad de opciones que se tiene, como su personalización. Es por eso, que se usarán los gráficos de <code class='bold'>ggplot2</code>. Estas herramientas, permiten generar una gran cantidad de gráficos a partir de la misma base computacional.</p> .center[ .center[.large[**Funciones R base y `ggplot2`**]] | Gráfico | R Base | ggplot2 | | :------ | :----: | :------: | | Puntos | plot() | geom_point() | | Lineas | plot(..., type="l") | geom_line() | | Histograma | hist() | geom_histogram() | | Barras | barplot() | geom_bar() | | Boxplot | boxplot() | geom_boxplot() | ] --- # El paquete ggplot2 .pull-left[ <br> **ggplot2** es un paquete de R para producir gráficos. A diferencia de la mayoría de los paquetes de gráficos, ggplot2 tiene una gramática subyacente, basada en la gramática de los gráficos, un sistema coherente para describir y construir gráficos, combinando componentes independientes. ] .pull-right[ <img src="Figuras/logoggplot.png" width="300px"/> ] <!-- --- --> <!-- # ggplot2 --> <!-- * El paquete ggplot2 permite definir gráficos de forma eficiente, elegante y sencilla. --> <!-- * Nos deja construir gráficos complejos y estéticamente agradables de un modo intuitivo y práctico de recordar. --> <!-- * Existen muchos packages para añadir características a los gráficos. --> --- # Ejemplo de un gráfico con ggplot2 .center[ <img src="Clase-08---2024_files/figure-html/unnamed-chunk-1-1.png" width="504" /> ] --- name: gram class: inverse, center, middle # Gramática de los gráficos --- # Gramática de los gráficos en capas <br> ### "Añadimos características a los gráficos *paso a paso*" <p>Se basa en una <b>gramática de gráficos</b>, que permite describir los componentes de un gráfico como una combinación de capas:</p> .pull-left[ <br> <img src="Figuras/capas.png" width="650px"/> ] .pull-right[ <br> 1. Un gráfico se inicia con la función **ggplot()**, la que crea un sistema de coordenadas de nuestro gráfico. 2. Cada capa adicional se agrega con un simbolo +, acompañado de la función deseada. ] --- # Componenentes de un gráfico con ggplot2 <p>Un gráfico básico de <code>ggplot</code> requiere definir al menos tres elementos: </p> 1. Los **datos** a utilizar. </br> 2. Los parámetros **estéticos** con que se registrarán las variables, es decir, cómo se asignarán las variables de nuestro conjunto de datos a ciertas propiedades visuales. Esto considera ejes de gráficos, colores, etc. La función para indicar esto es <code class='bold'>aes()</code> (del inglés "aesthetics"). </br> 3. Una capa que indique la **forma** en que se representarán gráficamente los datos (con la función <b>geom_*()</b>). <br> .center[ ### ggplot(data = <span style="color:salmon"> DATOS </span> , aes(<span style="color:salmon"> MAPEOS </span> )) + ### geom_<span style="color:salmon"> TIPO_DE_GRAFICO </span>(...) ] --- # Las capas (geom) Las capas sirven para proporcionar información sobre cómo queremos visualizar los datos. Esto se lleva a cabo a través de un **geom**. <img src="Figuras/plot_zoom.png" width="800px"/> <br> Otras geometrías disponibles: .pull-left[ * `geom_area()` * `geom_quantile()` * `geom_violin()` * `geom_density()` * `geom_bin2d()` * `geom_errorbar()` ] .pull-right[ * `geom_smooth()` * `geom_dotplot()` * `geom_freqpoly()` * `geom_linerange()` * `geom_text()` * ¡Entre otras! ] --- name: const class: middle inverse center # Construcción de gráficos con ggplot2 --- class: middle # Diseñamos bosquejo (o silueta) ```r *ggplot(mtcars, aes(x = wt, y =mpg )) ``` .pull-left[ * Construimos el bosquejo del gráfico. * En el eje X irá la variable `mpg`, en el eje Y la variable `wt`. Ambas variables pertenecen al data frame `mtcars` que incluye por defecto `R`, y representan el rendimiento y peso de automóviles, respectivamente. ] .pull-right[ <img src="Clase-08---2024_files/figure-html/unnamed-chunk-2-1.png" width="504" /> ] --- class: middle # Añadimos puntos al gráfico ```r ggplot(mtcars, aes(x =wt , y = mpg)) + * geom_point() ``` .pull-left[ * Utilizamos un signo `+` para añadir una nueva capa. * En esta capa, indicamos a `ggplot` mostrar un gráfico de puntos para las variables que escribimos definidas en la primera capa. ] .pull-right[ <img src="Clase-08---2024_files/figure-html/unnamed-chunk-3-1.png" width="504" /> ] --- class: middle # Añadimos título y nombre a los ejes ```r ggplot(mtcars, aes(x = wt, y = mpg)) + geom_point() + * labs(title = "Relación entre peso y rendimiento", * x = "Peso (1000 libras)", y = "Millas por galón") ``` .pull-left[ * En una nueva capa, podemos indicar a `ggplot` que el título del gráfico sea "Relación entre peso y rendimiento", junto con etiquetas a los ejes. ] .pull-right[ <img src="Clase-08---2024_files/figure-html/unnamed-chunk-4-1.png" width="504" /> ] --- # Cambiamos el color de los puntos ```r *ggplot(mtcars, aes(x = wt, y = mpg, col = factor(cyl) )) + geom_point() + labs(title = "Relación entre peso y rendimiento", x = "Peso (1000 libras)", y = "Millas por galón", colour='Cilindros') ``` .pull-left[ * ¿Cambia la relación si analizamos por cantidad de cilindros? ] .pull-right[ <img src="Clase-08---2024_files/figure-html/unnamed-chunk-6-1.png" width="504" /> ] --- name: 1er class: inverse center middle # Algunos tipos de gráficos en ggplot --- ## Histograma (`geom_histogram()`) ```r ggplot(data = paises, mapping = aes(x = pib_per_capita)) + geom_histogram(color = "white", fill ="#9292ff", bins = 15) ``` .pull-left[ Se usa para visualizar la distribución de los valores de una variable numérica. * El argumento `color` (o `colour`) corresponde al color de la línea de las barras del histograma. * El argumento `fill` corresponde al color de las barras del histograma. * El argumento `bins` permite elegir el número de barras a graficar. También, se puede usar `bin-width` para definir el ancho de cada barra. ] .pull-right[ <img src="Clase-08---2024_files/figure-html/fig1-out-1.png" width="100%" /> ] --- ## Gráfico de puntos (`geom_point()`) ```r ggplot(data = paises, mapping = aes(x = pib_per_capita, y = esperanza_de_vida)) + geom_point(color = "#ff7979", size = 8, alpha = 0.3) ``` .pull-left[ Se usa para encontrar relaciones o patrones entre dos variables (al menos una debe ser numérica). * El argumento `color` (o `colour`) permite elegir el color del punto. * El argumento `size` permite elegir el tamaño de dibujo del punto. Se le ingresa un número natural. * El argumento `alpha` permite elegir el nivel de transparencia de los puntos. Toma valores entre 0 y 1. Mientras más cercano a 0 los puntos son más transparentes. ] .pull-right[ <img src="Clase-08---2024_files/figure-html/fig2-out-1.png" width="100%" /> ] --- ```r ggplot(data = paises, mapping = aes(x = pib_per_capita, y = esperanza_de_vida)) + geom_point(shape = 24, size = 8, color = "black", fill = "#c5c5ff") ``` .pull-left[ El argumento `shape` permite elegir el tipo de punto a usar. En R hay 26 tipos de puntos: .center[<img src="Figuras/pch.png" width="270px">] ] .pull-right[ <img src="Clase-08---2024_files/figure-html/fig3-out-1.png" width="100%" /> ] Hay 5 tipos de puntos con relleno, desde el 21 al 25. Cuando se usa alguno de estos, el argumento `color` pasa a definir el color del borde, y el argumento `fill` pasa a ser el de relleno. --- ## Box Plot (`geom_boxplot()`) ```r ggplot(data = paises, mapping = aes(x = continente, y = esperanza_de_vida) ) + geom_boxplot(color = "#157EA3", fill = "#EB0052") ``` .pull-left[ Para observar la distribución de una variable numérica. Muy útil para comparar las distribuciones por grupo. * Se define la variable numérica en el eje `y`. Se agrega una segunda variable en el eje `x`. Permite separar el boxplot en grupos. * Se puede modificar la dirección de la caja desde `aes()`. * El argumento `color` (o `colour`) permite elegir el color del borde. * El argumento `fill` permite elegir el color de relleno de la caja. ] .pull-right[ <img src="Clase-08---2024_files/figure-html/fig4-out-1.png" width="100%" /> ] --- ## Gráfico de líneas (`geom_line()`) ```r ggplot(data = paises[paises$pais == "Chile",] , aes(x = anio, y = esperanza_de_vida)) + geom_line( color = "#E61400", size = 2) ``` .pull-left[ Se usa para analizar tendencias de una variable numérica en el tiempo. En el ejemplo, se presenta la evolución de la esperanza de vida en Chile desde 1960. * El argumento `color` permite elegir el color de la línea. * El argumento `size` permite elegir el grosor de la línea. ] .pull-right[ <img src="Clase-08---2024_files/figure-html/figline-1.png" width="100%" /> ] --- # El gráfico de barras ```r ggplot(mtcars, aes(y = factor(cyl))) + * geom_bar() + labs(title = "Distribución de la cantidad de cilindros", x = 'Frecuencia', y = 'Cantidad de cilindros') ``` .pull-left[ * Se usa para conocer la frecuencia relativa o absoluta de las clases de una variable categórica o discreta. * En el ejemplo, vemos un gráfico de barras para la variable `cyl`, que indica la cantidad de cilindros del automóvil. > *¿Cuál es la cantidad de cilindros que más tienen los automóviles?* ] .pull-right[ <img src="Clase-08---2024_files/figure-html/unnamed-chunk-8-1.png" width="504" /> ] --- class: inverse center middle # Customización de gráficos --- # Un color para todo el gráfico ```r gapminder %>% filter(year == 2010) %>% ggplot(aes(gdp / population,life_expectancy)) + * geom_point(color = 'deepskyblue') + labs(title = 'Relación entre PIB per cápita y esperanza de vida') ``` .pull-left[ * Gráfico de puntos para las variables `life_expectancy` y `gpd / population` (PIB per cápita), para encontrar si existen relaciones entre estas dos variables en el año 2010. * Escribimos el argumento `color` dentro de la función `geom_*()` y fuera de la función `aes()`. Se escribe el color para el gráfico entre comillas. * Puedes ver los colores disponibles escribiendo `colors()` en la consola. ] .pull-right[ <img src="Clase-08---2024_files/figure-html/unnamed-chunk-9-1.png" width="504" /> ] --- # Colores según una variable. ```r gapminder %>% filter(year == 2010) %>% ggplot(aes(gdp / population,life_expectancy)) + * geom_point(aes(color = continent)) + labs(title = 'Relación entre PIB per cápita y esperanza de vida') ``` .pull-left[ * El color de los puntos puede representar el continente en que se ubica el país. * Especificamos el argumento `color = continent` dentro de la función `aes()`. > *¿Qué continente tiene países con una menor esperanza de vida y PIB per cápita?* ] .pull-right[ <img src="Clase-08---2024_files/figure-html/unnamed-chunk-10-1.png" width="504" /> ] --- # Colores en gráficos de barras e histogramas. ```r gapminder %>% filter(year == 2010) %>% ggplot(aes(life_expectancy)) + * geom_histogram(fill = 'turquoise', color = 'deepskyblue') + labs(title = "Distribución esperanza de vida") ``` .pull-left[ * En vez de especificar el argumento `color`, debemos especificar el argumento `fill`. * Usamos el argumento `color`, para indicar el color de los bordes de los gráficos de este estilo. ] .pull-right[ <img src="Clase-08---2024_files/figure-html/unnamed-chunk-12-1.png" width="504" /> ] --- ## Ejes y títulos En `ggplot2` existen diferentes formas de definir títulos, subtítulos y nombres en los ejes. A continuación se presentaran dos formas de definir los mismos elementos de un gráfico: **Forma 1:** Funciones `ggtitle`, `xlab`, `ylab` ```r ggplot(...) + ggtitle(label = "Título", subtitle = "Sub título") + xlab(label = "Eje X") + ylab(label = "Eje Y") ``` **Forma 2:** Función `labs` ```r ggplot(...) + labs(title = "Título", subtitle = "Sub título", x = "Eje X", y = "Eje Y") ``` --- ## Ejes y títulos ```r ggplot(data = paises[paises$pais == "Chile", ] , aes(x = anio, y = esperanza_de_vida)) + geom_line() + geom_point() + labs(title = "Esperanza de vida en Chile", subtitle = "Años 1952 a 2007", x = "Año", y = "Esperanza de vida") ``` <img src="Clase-08---2024_files/figure-html/fig_labels-1.png" width="576" style="display: block; margin: auto;" /> --- name: color ## Argumentos `color` y `size` Dentro del comando `aes()` se puede indicar el argumento `color`. Este permite colorear los elementos del gráfico con respecto a una variable de la base de datos. Junto con esto, se puede incluir una leyenda que describirá qué significa cada color. La forma en que ggplot pinta los objetos visuales, depende del tipo de variable: * **Variable numérica** : Elige un gradiente de colores, donde la intensidad del color depende de la variable numérica. * **Variable categórica/factor** : Elige un color distinto por cada nivel del factor. Otro argumento de `aes()` es `size`, el cual permite cambiar el tamaño de elementos visuales a través de una variable. Usualmente, se utiliza con variables numéricas continuas y es aplicado en gráficos de puntos. Estos argumentos pueden ser definidos tanto dentro del comando **`ggplot()`**, como en los comandos de geometrías **`geom_*()`** respectivas. --- ```r ggplot(data = paises, aes(x = esperanza_de_vida, y = pib_per_capita)) + * geom_point(aes( size = poblacion, color = continente), alpha = 0.7) ``` <img src="Clase-08---2024_files/figure-html/fig_colorpoint-1.png" width="720" style="display: block; margin: auto;" /> --- ```r ggplot(data = base_vecinos, aes(x = esperanza_de_vida, y = pib_per_capita)) + * geom_point(aes(color = poblacion), size = 5) ``` <img src="Clase-08---2024_files/figure-html/fig_colorpoint2-1.png" width="720" style="display: block; margin: auto;" /> --- name: yosoy ## Personalización de la leyenda La leyenda puede personalizarse mediante el argumento `theme()`, función que permite modificar la mayoría de los elementos estéticos de un ggplot. En el caso de la leyenda usaremos, se usarán los siguientes argumentos: - **`legend.position`** - Permite modificar la posición de la leyenda. Recibe los argumentos `top`, `bottom`, `left`, `right`, `none`. - **`legend.title`** - Permite modificar el título de la leyenda. Para quitar el nombre definir `element_blank()`. - **`legend.background`** - Permite modificar el color del fondo del cuadro de la leyenda. - etc. A continuación, se visualizará un gráfico de líneas y puntos de la evolución de esperanza de vida de los países vecinos a Chile a través de los años: --- ```r ggplot(data = base_vecinos, aes(x = anio, y = esperanza_de_vida, color = pais) ) + geom_point(size = 3) + geom_line(size = 1) ``` <img src="Clase-08---2024_files/figure-html/fig_legend1-1.png" width="720" style="display: block; margin: auto;" /> --- ```r ggplot(data = base_vecinos, aes(x = anio, y = esperanza_de_vida, color = pais) ) + geom_point(size = 3) + geom_line(size = 1) + * theme(legend.position = "bottom", * legend.title = element_blank(), * legend.background = element_rect(fill="lightgrey") ) ``` <img src="Clase-08---2024_files/figure-html/fig_legend2-1.png" width="720" style="display: block; margin: auto;" /> --- names: temas ## Temas En la librería `ggplot` existe una variedad de temas precargados que permiten modificar de manera rápida cómo se ve el fondo de un gráfico. Estos son: - **`theme_grey()`**/**`theme_gray()`** - Por defecto - **`theme_bw()`** - **`theme_linedraw()`** - **`theme_light()`** - **`theme_dark()`** - **`theme_minimal()`** - **`theme_classic()`** - **`theme_void()`** - **`theme_test()`** A continuación, se usarán algunos de estos temas para evidenciar las diferencias entre ellos: --- .pull-left[ ```r ggplot(data = mtautos, aes(peso, millas)) + geom_point(color = "#79bcff", size = 5) + * theme_light() ``` <img src="Clase-08---2024_files/figure-html/unnamed-chunk-16-1.png" width="504" /> ] .pull-right[ ```r ggplot(data = mtautos, aes(peso, millas)) + geom_point(color = "#79bcff", size = 5) + * theme_dark() ``` <img src="Clase-08---2024_files/figure-html/unnamed-chunk-17-1.png" width="504" /> ] --- .pull-left[ ```r ggplot(data = mtautos, aes(peso, millas)) + geom_point(color = "#79bcff", size = 5) + * theme_bw() ``` <img src="Clase-08---2024_files/figure-html/unnamed-chunk-18-1.png" width="504" /> ] .pull-right[ ```r ggplot(data = mtautos, aes(peso, millas)) + geom_point(color = "#79bcff", size = 5) + * theme_classic() ``` <img src="Clase-08---2024_files/figure-html/unnamed-chunk-19-1.png" width="504" /> ] --- name: color2 ## Personalización de colores Existen diferentes formas de personalizar los colores de un gráfico de `ggplot2`, esto depende si el gráfico está coloreado mediante una variable continua o discreta: **Variable Discreta** * **`scale_fill_manual()`**: Permite ingresar colores de manera manual a colores del argumento `fill` de un gráfico. * **`scale_color_manual()`**: Permite ingresar colores de manera manual a colores del argumento `color` de un gráfico. **Variable Continua** * **`scale_<*>_gradient()`**: Gradiente secuencial de 2 colores. * **`scale_<*>_gradientn()`**: Gradiente entre n colores. En este caso `<*>` puede ser tanto `color` como `fill`, dependiendo del tipo de elemento visual que se quiera personalizar. A continuación se presentará un ejemplo de cada una de estas funciones: --- ```r ggplot(data=mtautos, aes(x=peso, y=millas, col=factor(cilindros) )) + geom_point(size = 8) + * scale_color_manual(values=c("#c5c5ff","#ffc5c5","#c5ffc5")) ``` <img src="Clase-08---2024_files/figure-html/fig_scm-1.png" width="504" style="display: block; margin: auto;" /> --- ```r ggplot(data=mtautos, aes(x = peso, y = millas )) + geom_boxplot(aes(fill = factor(cilindros) )) + * scale_fill_manual(values=c("#d9ff52","#52d9ff","#ff52d9")) ``` <img src="Clase-08---2024_files/figure-html/fig_sfm-1.png" width="504" style="display: block; margin: auto;" /> --- ```r ggplot(data = base_vecinos, aes(x = esperanza_de_vida, y = pib_per_capita)) + geom_point(aes(color = poblacion), size = 5) + * scale_color_gradient(low = "blue", high = "red") ``` <img src="Clase-08---2024_files/figure-html/fig_colorpoint3-1.png" width="720" style="display: block; margin: auto;" /> --- ```r ggplot(data = base_vecinos, aes(x = esperanza_de_vida, y = pib_per_capita)) + geom_point(aes(color = poblacion), size = 5) + * scale_color_gradientn(colors = c("#ea5d5d","#5dea5d","#5d5dea")) ``` <img src="Clase-08---2024_files/figure-html/fig_colorpoint4-1.png" width="720" style="display: block; margin: auto;" /> --- .large[**Librería `RColorBrewer`**] .pull-left[ <img src="Figuras/rcolorbrewer.png"> ] .pull-right[ La librería `RColorBrewer` contiene un gran número de paletas de colores para los gráficos de R y `ggplot2`. Las paletas de colores se definen con el argumento `palette` dentro de los comandos `scale_color_brewer()` o `scale_fill_brewer()`. ```r install.packages("RColorBrewer") library(RColorBrewer) ``` En las siguientes slides se ejemplificará el uso de estas paletas de colores. ] --- ```r ggplot(data=paises, aes(x = esperanza_de_vida, y = pib_per_capita, color = continente))+ geom_point(size = 5) + * scale_color_brewer(palette="Dark2") ``` <img src="Clase-08---2024_files/figure-html/fig_brewer1-1.png" width="792" style="display: block; margin: auto;" /> --- name: paneles class: inverse, middle # Paneles gráficos --- name: facet ## Comandos `facet_wrap()` y `facet_grid()` Los comandos `facet_wrap()` y `facet_grid()` permiten separar un gráfico en gráficos relacionados en un mismo panel. Esto ayuda cuando se tiene una agrupación en los datos y se desea analizar cada grupo por separado. En las siguientes slides se usarán los siguientes gráficos para ejemplificar estas funciones: .pull-left[ <img src="Clase-08---2024_files/figure-html/fig-wp-1.png" width="504" /> ] .pull-right[ <img src="Clase-08---2024_files/figure-html/fig-wl-1.png" width="504" /> ] --- ```r ggplot(data=paises, aes(x = esperanza_de_vida, y = pib_per_capita, color = continente))+ geom_point(size = 2, alpha = 0.7) + * facet_grid(~continente) ``` <img src="Clase-08---2024_files/figure-html/fig-wp2-1.png" width="792" style="display: block; margin: auto;" /> --- ```r ggplot(data = base_vecinos, aes(x = anio,y = esperanza_de_vida, color = pais) ) + geom_point(size = 3) + geom_line(size = 1) + * facet_wrap(~ pais) ``` <img src="Clase-08---2024_files/figure-html/fig-wl2-1.png" width="792" style="display: block; margin: auto;" /> --- ## Matriz de gráficos ```r g1 = ggplot(data = paises, aes(x = esperanza_de_vida)) + geom_histogram(fill = "lightblue") + labs(x = element_blank(), y = element_blank()) g2 = ggplot(data = paises, aes(x = esperanza_de_vida)) + geom_boxplot(fill = "lightblue") + labs(x=element_blank()) gridExtra::grid.arrange(g1,g2, nrow=2) ``` El comando **`grid.arrange()`** de la librería `gridExtra` permite colocar en la misma ventana múltiples gráficos de `ggplot2`, en una especie de matriz. .center[ ```r grid.extra(plot1, plot2,...) ``` ] Esta función recibe un listado de elementos visuales seguidos del argumento `ncol` o `nrow`, los cuales nos permiten indicar cuál será el número de columnas o filas, respectivamente, de la matriz de gráficos. --- <br> .center[ <img src="Clase-08---2024_files/figure-html/fig_final-out-1.png" width="75%" /> ] --- name: otros class: inverse, middle # Otros gráficos relacionados --- # Gráficos de correlación La función `ggcorrplot()` de la librería `ggcorrplot` grafica un correlograma a partir de una matriz de correlación de un set de datos. Los correlogramas son la mejor manera de analizar una matriz de correlación, dada su fácil interpretabilidad. .pull-left[ ```r library(ggcorrplot) cor_autos = cor(mtautos) ggcorrplot(cor_autos) ``` Algunos argumentos de la función: * **`method`**: figura en cada cuadro (`square` o `circle`). * **`type`**: tipo de pintado (`full`, `lower` o `upper`). * **`colors`**: vector de 3 colores para representar la correlación. * entre otros. ] .pull-right[ <img src="Clase-08---2024_files/figure-html/fig_corr-out-1.png" width="100%" /> ] --- ## Matriz de dispersión La función `ggpairs()` de la librería `GGally` realiza una matriz de gráficos de un conjunto de datos dados. .center[ <img src="Clase-08---2024_files/figure-html/fig_ggpairs-1.png" width="60%" /> ] --- name: taller class: inverse, middle # Taller práctico --- class: inverse # Taller práctico 1 Retomando las datos de anuncios de viviendas de la Región Metropolitana, **viviendasRM.csv**, construya los siguientes gráficos: 1. Un histograma que permita visualizar la distribución del valor de las viviendas en UF. 2. Un boxplot para visualizar la distribución del valor de las viviendas en UF según la cantidad de habitaciones. 3. Un gráfico de dispersión (o puntos) para observar la relación entre el valor de las viviendas en UF y su superficie construida en `\(m^2\)`. Ajuste a escala logarítmica si es necesario o elimine los valores atípicos. 4. Realice un análisis de correlación entre todas las variables numéricas disponibles. 5. Realice un análisis de dispersión entre todas las variables numéricas disponibles. --- class: inverse # Taller práctico 2 Usando los datos de países del package **datos** replique el siguiente gráfico. .center[ <img src="Clase-08---2024_files/figure-html/unnamed-chunk-23-1.png" width="60%" /> ] --- name: adios class: inverse, middle # Referencias y Material Complementario --- # Referencias y Material Complementario * Pagina Web [ggplot2](https://ggplot2.tidyverse.org/). * Versión en línea [libro](https://ggplot2-book.org/) *ggplot2: Elegant Graphics for Data Analysis, Hadley Wickham.* * [The Grammar of Graphics](https://www.amazon.com/Grammar-Graphics-Statistics-Computing/dp/0387245448/ref=as_li_ss_tl?ie=UTF8&qid=1477928463&sr=8-1&keywords=the+grammar+of+graphics&linkCode=sl1&tag=ggplot2-20&linkId=f0130e557161b83fbe97ba0e9175c431) (Statistics and Computing) * [**Link:** Funciones `facet_wrap()` y `facet_grid()` ](http://zevross.com/blog/2019/04/02/easy-multi-panel-plots-in-r-using-facet_wrap-and-facet_grid-from-ggplot2/) * [**Link:** Funciones base `ggplot2`](http://www.sthda.com/english/wiki/ggplot2-colors-how-to-change-colors-automatically-and-manually) * [**Link:** Paletas de colores `jcolors`](https://jaredhuling.org/jcolors/) * [**Link:** Funciones para distintas escalas de colores](https://ggplot2.tidyverse.org/reference/scale_brewer.html) * [**Link:** Líneas rectas, horizontales, verticales.](http://www.sthda.com/english/wiki/ggplot2-add-straight-lines-to-a-plot-horizontal-vertical-and-regression-lines) * [**Link:** Líneas distribuciones.](https://stackoverflow.com/questions/5688082/overlay-histogram-with-density-curve) --- class: middle, inverse background-image: url(Figuras/fondo.jpg) background-size: cover .pull-left[ # **¡Gracias!** <br/> <br/> ## Ana María Alvarado ### amalvara@uc.cl ]