Slide 1

Slide 1 text

Webinar : Visualizaci´ on de datos en R : Usando ggplot2 Abraham Zamudio 3 de Abril del 2020 1 / 26 #YoMeQuedoEnCasa

Slide 2

Slide 2 text

Visualizaci´ on Introducci´ on Los m´ etodos de visualizaci´ on de datos se refieren a la creaci´ on de re- presentaciones gr´ aficas de informaci´ on. La visualizaci´ on juega un papel importante en el an´ alisis de datos y ayuda a interpretar grandes datos en una estructura en tiempo real utilizando conjuntos complejos de cifras num´ ericas o f´ acticas. Observacion : El 90 % de la informaci´ on transmitida al cerebro es visual. Referencia 2 / 26 #YoMeQuedoEnCasa

Slide 3

Slide 3 text

Visualizaci´ on Introducci´ on Con los flujos aparentemente infinitos de datos f´ acilmente disponibles para las empresas de hoy en d´ ıa en todas las industrias, el desaf´ ıo radica en la interpretaci´ on de datos, que es la informaci´ on m´ as valiosa para la organizaci´ on , as´ ı como sus objetivos, metas y objetivos a largo plazo.Ah´ ı es donde entra la visualizaci´ on de datos. Debido a la forma en que el cerebro humano procesa la informaci´ on, la presentaci´ on de ideas en cuadros o gr´ aficos para visualizar cantidades significativas de datos complejos es m´ as accesible que depender de hojas de c´ alculo o informes. 3 / 26 #YoMeQuedoEnCasa

Slide 4

Slide 4 text

Visualizaci´ on Introducci´ on Las visualizaciones ofrecen una forma r´ apida, intuitiva y m´ as simple de transmitir conceptos cr´ ıticos de manera universal, y es posible experimentar con diferentes escenarios haciendo peque˜ nos ajustes. 4 / 26 #YoMeQuedoEnCasa

Slide 5

Slide 5 text

Visualizaci´ on Introducci´ on Estudios recientes descubrieron que el uso de visualizaciones en el an´ alisis de datos podr´ ıa acortar las reuniones de negocios en un 24 %. Adem´ as, una estrategia de inteligencia empresarial con capacidades de visualizaci´ on cuenta con un retorno de la inversi´ on de $13.01 por cada d´ olar gastado. 5 / 26 #YoMeQuedoEnCasa

Slide 6

Slide 6 text

ggplot2 Historia ggplot2 es un paquete de visualizaci´ on de datos para el lenguaje de programaci´ on R. Creado por Hadley Wickham en 2005, ggplot2 es una implementaci´ on de la Gram´ atica de gr´ aficos de Leland Wilkinson, un esquema general para la visualizaci´ on de datos que divide los gr´ aficos en componentes sem´ anticos como escalas (scales) y capas (layers). ggplot2 puede servir como un reemplazo para los gr´ aficos base en R y contiene una serie de valores predeterminados para la visualizaci´ on web e impresa. Desde 2005, ggplot2 ha crecido en uso para convertirse en uno de los paquetes R m´ as populares. ggplot2: Elegant Graphics for Data Analysis - Hadley Wickham The Grammar of Graphics - Leland Wilkinson ggplot2: Create Elegant Data Visualisations Using the Grammar of Graphics 6 / 26 #YoMeQuedoEnCasa

Slide 7

Slide 7 text

Elementos de un gr´ afico en ggplot2 Introducci´ on Un gr´ afico en ggplot2 se construye combinando una serie de elementos b´ asicos y comunes a muchos tipos de gr´ aficos distintos mediante una sintaxis sencilla. Esta secci´ on describe esa sintaxis y los elementos que articula 7 / 26 #YoMeQuedoEnCasa

Slide 8

Slide 8 text

Elementos de un gr´ afico en ggplot2 Datos Uno de los elementos m´ as importantes de un gr´ afico son los datos que se quieren representar. Una particularidad de ggplot2 es que solo acepta un tipo de datos: data.frames. Otras funciones gr´ aficas (p.e., hist) admiten vectores, listas u otro tipo de estructuras. ggplot2 no. 1 p <− ggplot(iris) Observacion : El c´ odigo anterior crea un objeto, p que viene a ser un protogr´ afico: contiene los datos que vamos a utilizar, los del conjunto de datos iris. Obviamente, el c´ odigo anterior es insuficiente para crear un gr´ afico: a´ un no hemos indicado qu´ e queremos hacer con iris. 8 / 26 #YoMeQuedoEnCasa

Slide 9

Slide 9 text

Elementos de un gr´ afico en ggplot2 Est´ eticas En un conjunto de datos hay columnas: edad, altura, ingresos, tempe- ratura, etc. En un gr´ afico hay, en la terminolog´ ıa de ggplot2, est´ eticas. Est´ eticas son, por ejemplo, la distancia horizontal o vertical, el color, la forma (de un punto), el tama˜ no (de un punto o el grosor de una l´ ınea), etc. Igual que al hablar asociamos a un conjunto de sonidos (p.e., m-e-s-a) un significado (el objeto que conocemos como mesa), al realizar un gr´ afico asociamos a elementos sin significado propio (p.e., los colores) uno: el que corresponde a una columna determinada de los datos. En ggplot2, dentro del lenguaje de los gr´ aficos que implementa, es muy importante esa asociaci´ on expl´ ıcita de significados a significantes, es decir, de columnas de datos a est´ eticas. 1 p <− p + aes(x = Petal.Length, y = Petal.Width, colour = Species) 9 / 26 #YoMeQuedoEnCasa

Slide 10

Slide 10 text

Elementos de un gr´ afico en ggplot2 Est´ eticas se est´ an a˜ nadiendo a p informaci´ on sobre las est´ eticas que tiene que utilizar y qu´ e variables de iris tiene que utilizar: La distancia horizontal, x, vendr´ a dada por la longitud del p´ etalo. La distancia vertical, y, por su anchura. El color, por la especie. Observacion Hay que hacer notar la sintaxis del c´ odigo anterior, bastante particular y propia del paquete ggplot2. Al protogr´ afico se le han sumado las est´ eticas. En las secciones siguientes se le sumar´ an otros elementos adicionales. Lo importante es recordar c´ omo la suma es el signo que combina los elementos que componen el lenguaje de los gr´ aficos. 10 / 26 #YoMeQuedoEnCasa

Slide 11

Slide 11 text

Elementos de un gr´ afico en ggplot2 Est´ eticas De todos modos, es habitual combinar ambos pasos en una ´ unica ex- presi´ on 1 p <− ggplot(iris, aes(x = Petal.Length, y = Petal.Width, colour = Species)) Observacion : El objeto p resultante a´ un no es un gr´ afico ni se puede representar. Le faltan capas, que es el objeto de la siguiente secci´ on. No obstante, se puede inspeccionar as´ ı: 1 summary(p) 11 / 26 #YoMeQuedoEnCasa

Slide 12

Slide 12 text

Elementos de un gr´ afico en ggplot2 Est´ eticas ¿Cu´ antas est´ eticas existen? Alrededor de una docena, aunque se utili- zan, generalmente, menos: x e y, distancias horizontal y vertical. colour, para el color. size, para el tama˜ no. shape, que indica la forma de los puntos (cuadrados, tri´ angulos, etc.) de los puntos o del trazo (continuo, punteado) de las l´ ıneas. alpha para la transparencia: los valores m´ as altos tendr´ ıan formas opacas y los m´ as bajos, casi transparentes. De ah´ ı la utilizad del canal alfa: da peso e importancia a las observaciones que la merecen. fill, para el color de relleno de las formas s´ olidas (barras, etc.). 12 / 26 #YoMeQuedoEnCasa

Slide 13

Slide 13 text

Elementos de un gr´ afico en ggplot2 Capas Las capas (o geoms para ggplot2) son los verbos del lenguaje de los gr´ aficos. Indican qu´ e hacer con los datos y las est´ eticas elegidas, c´ omo representarlos en un lienzo. 1 p <− p + geom point() 2 p Observacion: Para guardar el ultimo ggplot : 1 ggsave(”grafico.png”) 13 / 26 #YoMeQuedoEnCasa

Slide 14

Slide 14 text

Elementos de un gr´ afico en ggplot2 Capas 14 / 26 #YoMeQuedoEnCasa

Slide 15

Slide 15 text

Elementos de un gr´ afico en ggplot2 Capas Una caracter´ ıstica de las capas, y de ah´ ı su nombre, es que pueden superponerse. Por ejemplo, 1 ggplot(iris, aes(x = Petal.Length, y = Petal.Width, colour = Species)) + 2 geom point() + geom smooth() a˜ nade al gr´ afico una curva suavizada (con sus intervalos de confianza en gris). 15 / 26 #YoMeQuedoEnCasa

Slide 16

Slide 16 text

Elementos de un gr´ afico en ggplot2 Capas 16 / 26 #YoMeQuedoEnCasa

Slide 17

Slide 17 text

Elementos de un gr´ afico en ggplot2 Capas Existen muchos tipos de capas. Los m´ as usuales son geom_point, geom_line, geom_histogram, geom_bar y geom_boxplot. Pero hay m´ as. En la p´ agina http://docs.ggplot2.org/current/ se muestra una lista de los disponibles (en la versi´ on m´ as actualizada de ggplot2). En esa p´ agina se indica qu´ e geom hay que utilizar en funci´ on de una representaci´ on esquem´ atica del tipo de gr´ afico que se quiere construir. Adem´ as, hay capas espec´ ıficas que exigen est´ eticas especiales . Para algunas tiene sentido, p.e., shape. Para otras no. Esas especificidades est´ an indicadas en dicha p´ agina, que es m´ as ´ util que la ayuda general de R. 17 / 26 #YoMeQuedoEnCasa

Slide 18

Slide 18 text

Elementos de un gr´ afico en ggplot2 Facetas Muchos de los gr´ aficos que pueden generarse con los elementos ante- riores pueden reproducirse sin mucho esfuerzo (exceptuando, tal vez, cuestiones de aspecto) usando los gr´ aficos tradicionales de R, pero no los que usan facetas. 1 ggplot(iris, aes(x = Petal.Length, y = Petal.Width)) + 2 geom point() + geom smooth() + 3 facet grid(˜ Species) Observacion Crea tres gr´ aficos dispuestos horizontalmente que comparan la relaci´ on entre la anchura y la longitud del p´ etalo de las tres especies de iris. Una caracter´ ıstica de estos gr´ aficos, que es cr´ ıtica para poder hacer comparaciones adecuadas, es que comparten ejes. 18 / 26 #YoMeQuedoEnCasa

Slide 19

Slide 19 text

Elementos de un gr´ afico en ggplot2 Facetas 19 / 26 #YoMeQuedoEnCasa

Slide 20

Slide 20 text

Elementos de un gr´ afico en ggplot2 Mas sobre las esteticas Las est´ eticas se pueden etiquetar con la funci´ on labs. Adem´ as, se le puede a˜ nadir un t´ ıtulo al gr´ afico usando la funci´ on ggtitle. Por ejemplo, en el gr´ afico anterior se pueden reetiquetar los ejes y la leyenda haciendo 1 ggplot(iris, aes(x = Petal.Length, y = Petal.Width, colour = Species)) + 2 geom point() + 3 geom smooth() + 4 ggtitle(”Ancho y largo del Petalo”) + 5 labs(x = ”Largo del Petalo”, 6 y = ”Ancho del Petalo”, 7 colour = ”Especies”) 20 / 26 #YoMeQuedoEnCasa

Slide 21

Slide 21 text

Elementos de un gr´ afico en ggplot2 Mas sobre las esteticas 21 / 26 #YoMeQuedoEnCasa

Slide 22

Slide 22 text

Elementos de un gr´ afico en ggplot2 Temas Los temas de ggplot2 permiten modificar aspectos est´ eticos del gr´ afico que no tienen que ver con los datos en s´ ı. Eso incluye los ejes, etiquetas, colores de fondo, el tama˜ no de los m´ argenes, etc. No es habitual (y se desaconseja a los usuarios menos expertos) tener que alterar los temas que ggplot2 usa por defecto. Solo se vuelve necesario cuando los gr´ aficos tienen que adecuarse a una imagen corporativa o atenerse a alg´ un criterio de publicaci´ on exigente. Un tema es una colecci´ on de elementos (p.e., panel.background, que indica el color, transparencia, etc. del lienzo sobre el que se represen- ta el gr´ afico) modificables. El tema que usa ggplot2 por defecto es theme_grey. Al escribir theme_grey() en la consola de R, se mues- tran alrededor de cuarenta elementos modificables y sus atributos tal y como los define dicho tema. 22 / 26 #YoMeQuedoEnCasa

Slide 23

Slide 23 text

Elementos de un gr´ afico en ggplot2 Temas ¿Qu´ e se puede hacer con los temas? Una primera opci´ on es elegir otro. Por ejemplo, se puede reemplazar el habitual por otros disponibles en el paquete como theme_bw (o theme_classic) haciendo 1 ggplot(iris, aes(x = Petal.Length, y = Petal.Width, colour = Species)) + 2 geom point() + 3 geom smooth() + 4 ggtitle(”Ancho y largo del Petalo”) + 5 labs(x = ”Largo del Petalo”, 6 y = ”Ancho del Petalo”, 7 colour = ”Especies”)+ 8 theme bw() 23 / 26 #YoMeQuedoEnCasa

Slide 24

Slide 24 text

Elementos de un gr´ afico en ggplot2 Temas 24 / 26 #YoMeQuedoEnCasa

Slide 25

Slide 25 text

Elementos de un gr´ afico en ggplot2 Temas Es posible usar tanto los temas que incluye ggplot2 por defecto como otros creados por la comunidad. Algunos, por ejemplo, tratan de imitar el estilo de publicaciones reconocidas como The Economist o similares. Algunos est´ an recogidos en paquetes como, por ejemplo, ggthemes. 1 ggplot(iris, aes(x = Petal.Length, y = Petal.Width, colour = Species)) + 2 geom point() + geom smooth() + 3 ggtitle(”Ancho y largo del Petalo”) + 4 labs(x = ”Largo del Petalo”, 5 y = ”Ancho del Petalo”, 6 colour = ”Especies”)+ 7 theme bw() + 8 theme( 9 panel.background = element rect(fill = ”lightblue”), 10 panel.grid.minor = element line(linetype = ”dotted”) 11 ) 25 / 26 #YoMeQuedoEnCasa

Slide 26

Slide 26 text

Elementos de un gr´ afico en ggplot2 Temas Se est´ a modificando el atributo de color del lienzo de un gr´ afico y el tipo de la l´ ınea con que se dibuja la malla. 26 / 26 #YoMeQuedoEnCasa