Lecciones del módulo (2/2)
Personalización y Facets
Además de definir geometrías y estéticas, ggplot2 permite personalizar completamente el aspecto visual de un gráfico añadiendo títulos, modificando los temas y realizando el "faceting" (división de los gráficos en paneles).
Títulos y Etiquetas: labs()
Para añadir un título principal, subtítulos y modificar las etiquetas de los ejes cartesianos o de la leyenda, usamos la capa labs():
ggplot(df, aes(x = age, y = income)) +
geom_point() +
labs(
title = "Reddito in base all'età",
subtitle = "Dati del censimento 2026",
x = "Età (anni)",
y = "Reddito annuale (EUR)",
color = "Genere"
)
Temas Gráficos: theme_*()
ggplot2 incluye diferentes temas predefinidos que modifican el fondo, las cuadrículas y la tipografía del gráfico. Algunos de los más utilizados son:
theme_gray()(el tema por defecto con fondo gris).theme_minimal()(fondo blanco y cuadrícula muy fina).theme_classic()(estilo limpio, sin líneas de cuadrícula internas).
ggplot(df, aes(x = age, y = income)) +
geom_point() +
theme_minimal() # Aplica un diseño moderno y limpio
Dividir el Gráfico en Paneles: facet_wrap()
El faceting permite dividir un solo gráfico en múltiples gráficos secundarios (paneles) colocados uno al lado del otro, basándose en el valor de una variable categórica.
La función principal es facet_wrap() y utiliza la notación de fórmula de R (~ nombre_variabile):
# Crea un gráfico separado para cada departamento
ggplot(df, aes(x = age, y = income)) +
geom_point() +
facet_wrap(~ department)
Pruébalo tú
Ejercicio 1: Agrega títulos y ejes
Dado el gráfico de dispersión, agrega la capa labs() estableciendo el título (title) en 'Title', la etiqueta del eje x en 'Age' y la etiqueta del eje y en 'Income'.
Mostrar pista
Usa labs(title = 'Title', x = 'Age', y = 'Income') concatenándolo con el '+'.
Solución disponible después de 3 intentos
Ejercicio 2: Aplica un tema limpio
Aplica el tema gráfico theme_minimal() al gráfico de dispersión de abajo para mejorar su estética visual.
Mostrar pista
Usa el signo '+' y agrega la función theme_minimal().
Solución disponible después de 3 intentos
Ejercicio 3: Divide el gráfico con facet_wrap
Usa la función facet_wrap() para dividir el gráfico de dispersión en diferentes paneles basándote en la columna department.
Mostrar pista
Usa facet_wrap(~ department) para dividir el gráfico.
Solución disponible después de 3 intentos
Ejercicio 4: Invierte los ejes coordenados
Para hacer legible un gráfico de columnas con muchas categorías, puedes invertir los ejes x e y. Agrega la capa coord_flip() al gráfico de barras.
Mostrar pista
Usa coord_flip() enlazándolo al pipeline de ggplot con '+'.
Solución disponible después de 3 intentos
Ejercicio 5: Gráfico completo listo para publicación
Crea un gráfico completo sobre df: mapea age en x, income en y y color en gender dentro de geom_point(). Divide el gráfico con facet_wrap() por department, agrega labs() con el título 'Salary by Age' y finalmente aplica theme_minimal().
Mostrar pista
Une todas las capas usando '+': ggplot(...) + geom_point() + facet_wrap(~ department) + labs(title = 'Salary by Age') + theme_minimal()
Solución disponible después de 3 intentos