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
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
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
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
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
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
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
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
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
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
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
(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
ı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
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
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
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
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
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
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