La Data Cuenta es una plataforma independiente de periodismo basado en análisis de datos y visualización de información sobre cambio climático, migración y derechos humanos con perspectiva de género
La Data Cuenta es una plataforma independiente de periodismo basado en análisis de datos y visualización de información sobre cambio climático, migración y derechos humanos con perspectiva de género
Cómo crear un gráfico de dispersión al estilo de ‘The Economist’ usando ggplot2 en R
Share
2
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í
Para facilitar este ejercicio he inventado una bd que puedes descargar desde el botón
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: