Hassel Fallas
Analista de datos y periodista
En este segundo post te daré algunos trucos extra para aplicar, esta vez, en los diagramas de dispersión. En este ejemplo te guiaré para crear uno de estos gráficos con el estilo que emplea el renombrado semanario The Economist. Si no leíste el primer artículo de esta serie, lo puedes acceder aquí: Siete pasos para mejorar tus gráficos de barras con ggplot2 en R
Antes de empezar, algunos conceptos clave para tener en mente:
¿Qué es R? R es un entorno y lenguaje de programación con un enfoque al análisis estadístico
RStudio es un entorno de desarrollo integrado (IDE) para el lenguaje de programación R, dedicado a la computación estadística y gráficos
La librería ggplot2 de R es un sistema organizado de visualización de datos. Forma parte del conjunto de librerías llamado tidyverse. Fue creada por Hadley Wickham in 2005
Los diagramas de dispersión usan una colección de puntos colocados usando coordenadas cartesianas para mostrar valores de dos variables. Al mostrar una variable en cada eje, se puede detectar si existe una relación o correlación entre las dos variables.
¿Qué librerías necesitas cargar en R Studio antes de empezar?
library(ggplot2) #Para hacer las gráficas
library(viridis) #Para seleccionar paletas de color
library(ggthemes) #Para elegir temas o plantillas de diseño para tu gráfico
library(hrbrthemes) #Para elegir más temas o plantillas de diseño para tu gráfico
Descarga la hoja aquí
Paso #1. Crear un gráfico sencillo
ggplot(scatter, aes(x=IBM, y=IDH, color=zona)) +
geom_point()
Resultado:
Paso #2. Cambiemos el tamaño de los círculos y su color, según zona
ggplot(scatter, aes(x=IBM, y=IDH, color=zona)) +
geom_point(size=7) +
scale_color_viridis(discrete = T, option = "H")
Resultado:
Paso #3. Mejoremos la visualización de los puntos, añadiendo opacidad al color para percibir mejor su ubicación
ggplot(scatter, aes(x=IBM, y=IDH, color=zona)) +
geom_point(size=7, alpha=0.6) +
scale_color_viridis(discrete = T, option = "H")
Resultado:
Paso #4. Añadamos el tema The Economist para mejorar el diseño de presentación del gráfico; también agreguemos títulos y nombres a los ejes
ggplot(scatter, aes(x=IBM, y=IDH, color=zona)) +
geom_point(size=7, alpha=0.6) +
scale_color_viridis(discrete = T, option = "H")+
theme_economist_white() +
xlab("IDH")+
ylab("IBM")+
labs(title = "Ejemplo con gráfico de dispersión",
subtitle = "Acá se escribe una conclusión que amplíe el título",
caption = "Fuente:BD inventada para este post")
Resultado:
Paso #4. Ahora trabajaremos con el tamaño de la letra de las leyendas y el título
ggplot(scatter, aes(x=IBM, y=IDH, color=zona)) +
geom_point(size=7, alpha=0.6) +
scale_color_viridis(discrete = T, option = "H")+
theme_economist_white() +
theme(legend.text = element_text(size = 10)) +
theme(plot.title = element_text(size = 20))+
xlab("IDH")+
ylab("IBM")+
labs(title = "Ejemplo con gráfico de dispersión",
subtitle = "Acá se escribe una conclusión que amplíe el título",
caption = "Fuente:BD inventada para este post")
Resultado:
Paso #5. ¿Cómo cambiar manualmente los colores que representan la zona en el gráfico y ajustarlos a la paleta de The Economist? ¿Cómo añadir un texto explicativo dentro del área del gráfico y una línea de tendencia?
ggplot(scatter, aes(x=IBM, y=IDH, color=zona)) +
geom_jitter(size=7, alpha=0.6) +
geom_smooth(method=lm, se=FALSE, col='black', size=0.3)+
scale_color_manual(values = c("#076FA1", "#00AAC3"))+
geom_label(
label="Texto para explicar alguna conclusión \n relevante del gráfico",
x=25,
y=25,
label.padding = unit(0.2, "lines"),
label.size = 0.32,
color = "black",
fill="#E3E3E3"
)+
theme_economist_white() +
theme(legend.text = element_text(size = 10)) +
xlab("IDH")+
ylab("IBM")+
labs(title = "Ejemplo con gráfico de dispersión",
subtitle = "Acá se escribe una conclusión que amplíe el título",
caption = "Fuente:BD inventada para este post")
Resultado:
Espero que este ejercicio te haya sido útil para mejorar el diseño de tus gráficos de barras y su comunicación. Si deseas leer más sobre temas de visualización y análisis de datos, te recomiendo estos artículos:
