1 Presentación:

Este documento es presentado por los siguientes alumnos del curso de Técnicas de Exploración de Datos de la Universidad Nacional Agraria La Molina de Lima, Perú.

1.1 Integrantes:

ggplot2 ahora tiene un mecanismo de extensión oficial. Esto significa que ahora otros pueden crear fácilmente sus propias estadísticas, geoms y posiciones, y proporcionarlas en otros paquetes. Esto debería permitir que la comunidad ggplot2 florezca, incluso cuando se realiza menos trabajo de desarrollo en ggplot2. Esta página muestra estas extensiones.

# Cargando paquetes
library(pacman)
p_load(ggplot2,ggsci,gridExtra,remotes,tidyverse,foreign, colourpicker, plotrix, PerformanceAnalytics,
       ggplot2, gganimate, gifski, png, plotly, forcats,
       RColorBrewer, maps, mapdata, lubridate, scales,
       esquisse, cowplot, ggpubr, patchwork,ggthemes,tvthemes,extrafont,rpart)

datos <- read.spss("Riesgo_morosidad.sav", 
                   use.value.labels = T,  
                   to.data.frame = TRUE)

attr(datos, "variable.labels") <- NULL  

attach(datos)
# Instalar el paquete "remotes"
library(remotes)
#remotes::install_github("AllanCameron/geomtextpath")
library(geomtextpath)

# Instalar el paquete "ggsci" desde el github
#remotes::install_github("nanxstats/ggsci")
library(ggsci)
library(gridExtra)

2 Extensión geomtextpath

Las capas geom basadas en texto existentes en ggplot2 (geom_text y geom_label) son ideales para la mayoría de los gráficos, ya que las anotaciones textuales suelen ser cortas, rectas y alineadas con los ejes. Sin embargo, hay algunas ocasiones en las que es útil que el texto siga una ruta curva. Esto puede ser para crear o recrear un efecto visual específico, o puede ser para etiquetar una trama circular/polar de una manera más “natural”. Las etiquetas de texto directas y automáticas que se adhieren a su línea asociada también pueden proporcionar una alternativa ordenada a las leyendas, sin necesidad de especificar las posiciones exactas de las etiquetas y con un menor riesgo de sobretrazado. Usando geomtextpath, su texto puede seguir cualquier ruta y permanecerá correctamente espaciado y en ángulo, incluso si cambia el tamaño y la relación de aspecto de su dispositivo de trazado. Lo hace sin la necesidad de volver a dibujar la trama cada vez, como se muestra en la viñeta de introducción.

Las funciones principales de este paquete, geom_textpath y geom_labelpath, funcionan como cualquier otro geom en ggplot2. Toman sus coordenadas, sus coordenadas y su etiqueta de texto de un mapeo estético.

2.1 Usando geom_textdensity

Esta funcion nos permite añadir etiquetas curvas suaves en gráficos de densidad.

2.1.1 Gráfica simple

ggplot(datos, aes(x = edad,fill = morosidad, colour = morosidad, 
                  label = morosidad)) +
  geom_textdensity(size = 10, fontface = 6, hjust = 0.2, vjust = 0.3,
                   linewidth = 2) +
  theme(legend.position = "none")

Tenga en cuenta que hemos podido “recuperar” el espacio que normalmente ocupa la leyenda sin dejar ninguna ambigüedad en la trama.

2.1.2 Gráfica avanzada

ggplot(datos, aes(x = edad, fill = morosidad, colour = morosidad,
                  label = morosidad)) +
  geom_textdensity(size = 5, fontface = 6, hjust = 0.2, 
                   vjust = 0.1,
                   linewidth= 2)+
  facet_wrap(~dpto, scales = "free") + 
  scale_x_continuous(breaks = seq(20,90,5)) +
  labs(title = "GRAFICO DE DENSIDAD CON SU ETIQUETA", x = "Edad", 
       y = "Densidad",
       color="Morosidad") +
  theme_minimal()+
  theme(plot.title = element_text(hjust = 0.5))+
  theme(legend.position = "none")+
  theme(panel.background = element_rect(fill = "white",
                                        colour = "blue4")) +
  scale_colour_gravityFalls() # añade el color dela paleta "gravityfalls"

Fuente: geom_textdensity

Autor de geomtextpath : Alan Cameron

3 Extensión ggsci

ggsci ofrece una colección de paletas de colores de alta calidad inspiradas en los colores utilizados en revistas científicas, bibliotecas de visualización de datos, películas de ciencia ficción y programas de televisión. Las paletas de colores en ggsci están disponibles como escalas ggplot2. Para todas las paletas de colores, las escalas correspondientes se nombran como: scale_color_palname() scale_fill_palname()

3.1 Usando las paletas “aaas” y “jco”

3.1.1 Comparación de gráficos simples

3.1.1.1 Gráfico de barras

ggplot(datos) + aes(dpto, fill = morosidad) +
  geom_bar() + theme_bw() ->a
a

3.1.1.2 Usando la paleta “aaas”

La paleta AAAS está inspirada en las tramas de las revistas publicadas por la Asociación Estadounidense para el Avance de la Ciencia

a_npg <- a + scale_fill_aaas()
a_npg

fuente: paleta aaas

autor: Nan Xiao

3.1.2 Comparación de gráficos simples

3.1.2.1 Gráfico de puntos

ggplot(datos) + aes(edad, y = nrodepen, colour = dpto) + 
  geom_point() + theme_bw() ->b
b

3.1.2.2 Usando la paleta “Jco”

La paleta JCO está inspirada en las tramas de Journal of Clinical Oncology.

The Journal of Clinical Oncology es una revista médica revisada por pares publicada 3 veces al mes por Lippincott Williams & Wilkins. Cubre la investigación en todos los aspectos de la oncología clínica. La revista se estableció en 1983 y el editor en jefe es Jonathan W. Friedberg

b_npg <- b + scale_color_jco()
b_npg

fuente: paleta JCO

autor: Nan Xiao

3.2 Gráficas avanzadas

3.2.1 Histograma

p2 <- ggplot(
  subset(datos,  edad > 40 & edad < 80),
  aes(x = edad, fill = dpto)) +
  geom_histogram(colour = "black", bin= 30) +
  facet_grid(dpto ~morosidad, scales = "free")  + 
  scale_x_continuous(breaks = seq(40,80,5))+
  theme_bw() +
  labs(title = "Edad de clientes por departamento según la morosidad",
       y = "Frecuencia",
       x= "Edad del Cliente",
       fill= "Departamento") +
  theme(plot.title = element_text(hjust = 0.5),
legend.text = element_text(colour = "darkolivegreen"), 
legend.background = element_rect(fill = "gray84",
                                 colour = "azure4", linetype = "dashed"))+
  theme(legend.position="none") 
p2

3.2.2 Usando Paleta UChicago:

La paleta de UChicago se basa en los colores utilizados por la Universidad de Chicago. Hay tres tipos de paleta (predeterminada, clara, oscura) disponibles.

p2_uchicago <- p2   + theme(
  panel.background = element_rect(fill = "snow3")) +
  scale_fill_uchicago()

p2_uchicago

Fuente: Paleta Uchicago

autor: Nan Xiao

3.3 Gráficas avanzadas

3.3.1 Gráfico de puntos

p1 <- ggplot(
  subset(datos, edad >= 20),
  aes(x = edad, y = nrodepen, colour= dpto)) +
  geom_point(alpha = 0.7) +
  geom_smooth(method = "loess", alpha = 0.1, size = 1) +
  theme_minimal() + 
  scale_x_continuous(breaks = seq(20,80,5))+
  scale_y_continuous(breaks = seq(0,5,1))+
  theme(legend.position="top")+
  labs(title = "Edad de clientes por departamento según el nrodepen",
       y = "Número de dependientes",
       x= "Edad del Cliente",
       color= "Departamento") +
  theme(plot.title = element_text(hjust = 0.5)) 
p1

3.3.2 Usando Paleta JAMA

La paleta JAMA está inspirada en las tramas de The Journal of the American Medical Association: es una revista médica revisada por pares y publicada por la Asociación Médica Estadounidense de forma semanal desde 1883.

p1_jama <- p1   + theme_bw() +
  scale_color_jama() +
  theme(plot.title = element_text(hjust = 0.5)) 

p1_jama

Fuente: paleta Jama

autor: Nan Xiao