Introducción ggplot2
2023-04-06
Figure 1: Whole game: Visualización
Una visualización de datos efectiva brinda a los usuarios medios intuitivos para…
explorar y analizar datos de manera interactiva, permitiéndoles
identificar de manera efectiva patrones interesantes,
inferir correlaciones y causalidades, y
brindar soporte a actividades de comprensión.
Pero…
Reproducibilidad
Flujo de trabajo unificado
R nos permite llevar a cabo muchas tareas sin necesidad de utilizar otros programas.
Funciones poderosas
base R
, plotly
, sjPlot
, mapview
, igraph
y en particular nos vamos a enfocar en ggplot2
.ggplot()
La lógica que propone ggplot una de los paquetes de la familia tidyverse() es la estratificación
Si existe un consenso en R, es que ggplot es la librería para graficar.
En ggplot una capa se encarga de renderizar cada uno de los elementos visuales. Las capas forman una gramática o un conjunto de reglas mediante las cuales R creará los artefactos visuales.
Figure 2: Adaptado en Introduction to data visualisation
1. La data:
2. El mapeo estético:
X
y Y
usando la funcion aes
. Además, puede utilzar otros argumentos como el color
y vincularlo a una columna diferente del conjunto de datos.WorldBank
Utilicemos los datos económicos y sociales de diferentes países proporcionados por el Banco Mundial.
Preprocesamiento de los datos:
pacman::p_load(WDI, # Data World Bank
ggplot2
)
# Buscar indicadores relacionados con el PIB per cápita:
indicadores <- WDIsearch("GDP per capita")
dataf <- WDI(country = "PE", indicator = c("NY.GDP.PCAP.CD", # PBI
"SH.DYN.MORT"), # Mortalidad
start = 2000, end = 2022)
dataf <- data.frame(dataf)
# Renombrar las variables del dataframe
colnames(dataf)[5:6] <- c("PIB_Per_Capita", "Mortalidad_Infantil")
geom_
ggplot(data = dataf,
mapping = aes(x = Mortalidad_Infantil,
y = PIB_Per_Capita)) + # Para añadir la siguiente capa debemos utilizar el signo más (`+`)
geom_point()
ggplot(data = dataf,
mapping = aes(x = Mortalidad_Infantil, y = PIB_Per_Capita)) +
geom_point() +
coord_trans(x = "log10", y = "log10") +
theme_classic()
# Crear la gráfica utilizando ggplot2
ggplot(dataf, # Data
aes(x = Mortalidad_Infantil, # Your X-value
y = PIB_Per_Capita, # Your Y-value
color = "") # Podemos pintar con otra variable
) + # Aesthetics
geom_point(size = 5, alpha = 0.8) + # Point
geom_smooth(method = "lm") + # Linear regression
labs(title = "Relación entre Tasa de Mortalidad Infantil y PIB per cápita", # Title
x = "Tasa de Mortalidad Infantil", y = "PIB per cápita", col = "") +
theme_classic() + # apply a clean theme
theme(title = element_text(size = 18, face = "bold"),
text = element_text(size = 16))
Wickham, H., Navarro, D., & Lin, T. (2009). ggplot2. Elegant Graphics for Data Analysis (3ª ed.). Springer. https://ggplot2-book.org/
Wickham, H. (2010). A Layered Grammar of Graphics. Journal of Computational and Graphical Statistics, vol. 19, no. 1, pp. 3–28. https://vita.had.co.nz/papers/layered-grammar.pdf
Wickham, H., Çetinkaya-Rundel, M., & Grolemund, G. (2023). R for Data Science. Import, Tidy, Transform, Visualize, and Model Data (2ª ed.). O’Reilly Media, Inc. https://r4ds.hadley.nz/
Ikakis, N. (2018). Big data visualization tools.” arXiv preprint. arXiv:1801.08336