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ú.
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)
<- read.spss("Riesgo_morosidad.sav",
datos 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)
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.
Esta funcion nos permite añadir etiquetas curvas suaves en gráficos de densidad.
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.
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"
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()
ggplot(datos) + aes(dpto, fill = morosidad) +
geom_bar() + theme_bw() ->a
a
La paleta AAAS está inspirada en las tramas de las revistas publicadas por la Asociación Estadounidense para el Avance de la Ciencia
<- a + scale_fill_aaas()
a_npg a_npg
ggplot(datos) + aes(edad, y = nrodepen, colour = dpto) +
geom_point() + theme_bw() ->b
b
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 + scale_color_jco()
b_npg b_npg
<- ggplot(
p2 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
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 + theme(
p2_uchicago panel.background = element_rect(fill = "snow3")) +
scale_fill_uchicago()
p2_uchicago
<- ggplot(
p1 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
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 + theme_bw() +
p1_jama scale_color_jama() +
theme(plot.title = element_text(hjust = 0.5))
p1_jama