
Hassel Fallas
Analista de datos y periodista
La visualización de datos es una forma de entender y explicar el mundo que me rodea. Suena ambicioso, pero cada vez que me enfrento a un proyecto de esta naturaleza surgen tantas preguntas que es imposible no maravillarme por todo lo que puedo descubrir buscando el contexto para comprender el sentido de los datos. En ese camino, el análisis visual de la información y su posterior representación gráfica son fundamentales. Para emprender ambas tareas existen múltiples herramientas, tal y como te cuento en este otro post: Once herramientas gratuitas y en línea para visualizar datos.
Una de mis herramientas predilectas es R y sus librerías para visualizar datos. Justamente en este artículo te guiaré en el uso de una de las librerías más famosas: la versátil ggplo2. Te mostraré siete pasos para mejorar tus gráficos de barras con ggplot2. Antes de empezar, te dejo algunos conceptos base relevantes.
¿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
¿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(bd_fake, aes(fill=Identidad_género, y=Cuenta, x=Película_favorita)) +
geom_bar(position="stack", stat="identity")
Resultado:

Paso #2. Mejoremos el gráfico con algo de color
ggplot(bd_fake, aes(fill=Identidad_género, y=Cuenta, x=Película_favorita)) +
geom_bar(position="stack", stat="identity")+
scale_fill_viridis(discrete = T, option = "H")
#Nota: Las escalas de Viridis van de la opción A a la H.
#Puedes probar con alguna de esas letras cambiando la H que aparece en esta porción del
#código arriba
scale_fill_viridis(discrete = T, option = "H")
Resultado:

Paso #3. Además de color, démosle estilo al gráfico con un tema
ggplot(bd_fake, aes(fill=Identidad_género, y=Cuenta, x=Película_favorita)) +
geom_bar(position="stack", stat="identity")+
scale_fill_viridis(discrete = T, option = "D")+ #nota que aquí cambié la opción de color :)
theme_ipsum_es()
Resultado:

Paso #4. Ahora añadamos títulos y leyendas al gráfico
ggplot(bd_fake, aes(fill=Identidad_género, y=Cuenta, x=Película_favorita)) +
geom_bar(position="stack", stat="identity")+
scale_fill_viridis(discrete = T, option = "D")+
theme_ipsum_es() +
xlab("Película favorita")+
ylab("cantidad de personas")+
labs(title = "Películas predilectas, según identidad de género ",
subtitle = "Acá se escribe una conclusión que amplíe el título",
caption = "Fuente:BD inventada para este post")+
guides(fill=guide_legend(title="Identidad de género"))
Resultado:

Paso #4. Vamos a crear gráficos por categorías, según identidad de género
ggplot(bd_fake, aes(fill=Identidad_género, y=Cuenta, x=Película_favorita)) +
geom_bar(position="stack", stat="identity")+
scale_fill_viridis(discrete = T, option = "D")+
facet_wrap(~Identidad_género) +
theme_ipsum_es() +
xlab("Película favorita")+
ylab("cantidad de personas")+
labs(title = "Películas predilectas, según identidad de género ",
subtitle = "Acá se escribe una conclusión que amplíe el título",
caption = "Fuente:BD inventada para este post")+
guides(fill=guide_legend(title="Identidad de género"))
Resultado:

Paso #5. Mejoremos la visualización de las etiquetas del eje X
ggplot(bd_fake, aes(fill=Identidad_género, y=Cuenta, x=Película_favorita)) +
geom_bar(position="stack", stat="identity")+
scale_fill_viridis(discrete = T, option = "D")+
facet_wrap(~Identidad_género) +
theme_ipsum_es() +
xlab("Película favorita")+
ylab("cantidad de personas")+
labs(title = "Películas predilectas, según identidad de género ",
subtitle = "Acá se escribe una conclusión que amplíe el título",
caption = "Fuente:BD inventada para este post")+
theme(legend.position="none")+
theme(axis.text.x = element_text(color = "grey20", size = 10,
angle = 45, hjust = .5, vjust = .5, face = "plain"))
Resultado:

Paso #6. ¿Qué tal si creamos nuestra propia escala de color para cada categoría?
ggplot(bd_fake, aes(fill=Identidad_género, y=Cuenta, x=Película_favorita)) +
geom_bar(position="stack", stat="identity")+
scale_fill_manual(values = c("#003f5c", "#ff7c43", "#665191"))+
facet_wrap(~Identidad_género) +
theme_ipsum_es() +
xlab("Película favorita")+
ylab("cantidad de personas")+
labs(title = "Películas predilectas, según identidad de género ",
subtitle = "Acá se escribe una conclusión que amplíe el título",
caption = "Fuente:BD inventada para este post")+
theme(legend.position="none")+
theme(axis.text.x = element_text(color = "grey20", size = 10,
angle = 45, hjust = .5, vjust = .5, face = "plain"))
Resultado:

Paso #7. Y si queremos nuestro gráfico en horizontal, ¿cómo lo hacemos?
ggplot(bd_fake, aes(fill=Identidad_género, y=Cuenta, x=Película_favorita)) +
geom_bar(position="stack", stat="identity")+
scale_fill_manual(values = c("#003f5c", "#ff7c43", "#665191"))+
facet_wrap(~Identidad_género) +
theme_ipsum_es() +
xlab("Película favorita")+
ylab("cantidad de personas")+
labs(title = "Películas predilectas, según identidad de género ",
subtitle = "Acá se escribe una conclusión que amplíe el título",
caption = "Fuente:BD inventada para este post")+
coord_flip() +
theme(legend.position="none")+
theme(axis.text.x = element_text(color = "grey20", size = 10,
angle = 45, hjust = .5, vjust = .5, face = "plain"))
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: