#VISUALIZACIÓN DE DATOS CON ggplot2 ##2 #instala el paquete tidyverse en su computadora #Sólo se instala una vez. install.packages("tidyverse") #trae a tidyverse al ambiente de trabajo de RStudio library(tidyverse) #es una de las data.frames que trae ggplot2 (mirar en el Environment) mpg #trae sólo las 6 primeras filas (la cabeza) head(mpg) ##3 #Explica el significado de los datos de mpg. ?mpg ##4 #Pregunta: ¿Los automóviles con motores grandes consumen más combustible que los que que tienen motores pequeños? ggplot(data = mpg) + geom_point(mapping = aes(x = displ, y = hwy)) ##5 Estructura general de ggplot2 # ggplot(data = ) + # (mapping = aes()) #ir al cheat sheet de ggplot2 y probar con algunos geom_functions y mappings ggplot(data = mpg) + geom_jitter(mapping = aes(x = displ, y = hwy)) ggplot(data = mpg) + geom_quantile(mapping = aes(x = displ, y = hwy), quantiles = c(0.25,0.5,0.75)) + #¡Atención! Probablemente pida instalar quantreg package geom_point(mapping = aes(x = displ, y = hwy)) #¿Cómo funciona geom_quantile? #¿Resulta claro el help? #Consejo: vea ejemplos en la web. Aprenda a preguntarle a Google. ##6 #agreguemos colores para la class (clase) de vehículo ggplot(data = mpg) + geom_point(mapping = aes(x = displ, y = hwy, color = class)) ##7 #Tamaño ggplot(data = mpg) + geom_point(mapping = aes(x = displ, y = hwy, size = class)) #Atención el Warning!! ##8 #Transparencia ggplot(data = mpg) + geom_point(mapping = aes(x = displ, y = hwy, alpha = class)) #Atención el Warning!! ##9 #Forma ggplot(data = mpg) + geom_point(mapping = aes(x = displ, y = hwy, shape = class)) #Atención el Warning!! #Forma con scale_shape_manual. Ahora no hay Warning ggplot(data = mpg) + scale_shape_manual(values=0:6) + geom_point(mapping = aes(x = displ, y = hwy, shape = class)) ##10 #Facetas ggplot(data = mpg) + geom_point(mapping = aes(x = displ, y = hwy)) + facet_grid(drv ~ cyl ) ##11 #geom_smooth() cálculo aproximado de la media con su intervalo de confianza (+-95%) #level es el nivel de confidencia #span es la suavidad de la curva ggplot(data = mpg) + geom_smooth(mapping = aes(x = displ, y = hwy), level = 0.99, span=0.7) + geom_point(mapping = aes(x = displ, y = hwy)) ##12 #geom_smooth() #Una curva por drv ggplot(data = mpg) + geom_smooth(mapping = aes(x = displ, y = hwy, linetype = drv)) #una curva por drv, con los puntos agregados ggplot(data = mpg) + geom_smooth(mapping = aes(x = displ, y = hwy, linetype = drv, color=drv)) + geom_point(mapping = aes(x = displ, y = hwy, color = drv)) ##13 #Vemos cómo geom_point y geom_smooth heredan información de ggplot ggplot(data = mpg, mapping = aes(x = displ, y = hwy)) + geom_point() + geom_smooth() ggplot(data = mpg, mapping = aes(x = displ, y = hwy)) + geom_point(aes(color = class)) + geom_smooth() ##14 #Sólo la curva de la media sin el intervalo de confianza ggplot(data = mpg, mapping = aes(x = displ, y = hwy)) + geom_point(mapping = aes(color = class)) + geom_smooth(data = filter(mpg, class == "subcompact"), se = FALSE) #se es intervalo de confianza ##15 Transformaciones Estadísticas ##16 Analizando diamonds, con 54000 tuplas #no es muy útil visualizar los datos de cada diamante. ?diamonds head(diamonds) #Probemos con geom_bar ggplot(data = diamonds) + geom_bar(mapping = aes(x = cut)) # Funciona igual(?) con stat_count() ggplot(data = diamonds) + stat_count(mapping = aes(x = cut)) ##18 geom_bar y stat_summary #Y está normalizado, la suma de las barras da 1 ggplot(data = diamonds) + geom_bar(mapping = aes(x = cut, y = ..prop.., group = 1)) #summary, Para cada X despliega la mediana, el mínimo y el máximo de los Y ggplot(data = diamonds) + stat_summary(mapping = aes(x = cut, y = depth), fun.min = min, fun.max = max, fun = median) #el pipeline, para calcular el valor de "depth" máximo entre todos los diamantes que cuyo "cut" es "Premium". diamonds %>% filter(cut=="Premium") %>% select(depth) %>% max() ##19 más de geom_bar. #Uso de fill ggplot(data = diamonds) + geom_bar(mapping = aes(x = cut,fill=cut)) #Uso de scale_fill_brewer (paleta de colores "Set1") ggplot(data = diamonds) + geom_bar(mapping = aes(x = cut, fill = clarity)) + scale_fill_brewer(palette = "Set1") ##20 #Lleva a cada barra hasta 1, para hacer comparaciones entre valores de x ggplot(data = diamonds) + geom_bar(mapping = aes(x = cut, fill = clarity),position = "fill") + scale_fill_brewer(palette = "Set1") # position "dodge" despliega las "clarity" en barras separadas ggplot(data = diamonds) + geom_bar(mapping = aes(x = cut, fill = clarity), position = "dodge") + scale_fill_brewer(palette = "Set1") ##21 Jitter ggplot(data = mpg) + geom_point(mapping = aes(x = displ, y = hwy), position = "jitter") ggplot(data = mpg) + geom_jitter(mapping = aes(x = displ, y = hwy, color = class)) ##======================================================================= ###Esquisse https://cran.r-project.org/web/packages/esquisse/readme/README.html install.packages("esquisse") library(esquisse) esquisse:::esquisser(mpg) #esquisse:::esquisser() #o sin un data.frame de entrada