Lezioni del modulo (2/2)
Personalizzazione e Facet
Oltre a definire geometrie ed estetiche, ggplot2 consente di personalizzare interamente l'aspetto visivo di un grafico aggiungendo titoli, modificando i temi ed effettuando il "faceting" (suddivisione dei grafici in pannelli).
Titoli ed Etichette: labs()
Per aggiungere un titolo principale, sottotitoli e modificare le etichette degli assi cartesiani o della legenda, usiamo lo strato 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"
)
Temi Grafici: theme_*()
ggplot2 include diversi temi predefiniti che modificano lo sfondo, le griglie e la tipografia del grafico. Alcuni dei più utilizzati sono:
theme_gray()(il tema di default con sfondo grigio).theme_minimal()(sfondo bianco e griglia molto sottile).theme_classic()(stile pulito, senza linee di griglia interne).
ggplot(df, aes(x = age, y = income)) +
geom_point() +
theme_minimal() # Applica un design moderno e pulito
Suddividere il Grafico in Pannelli: facet_wrap()
Il faceting consente di dividere un singolo grafico in più grafici secondari (pannelli) affiancati, basandosi sul valore di una variabile categoriale.
La funzione principale è facet_wrap() e utilizza la notazione formula R (~ nome_variabile):
# Crea un grafico separato per ogni dipartimento
ggplot(df, aes(x = age, y = income)) +
geom_point() +
facet_wrap(~ department)
Prova tu
Esercizio 1: Aggiungi titoli e assi
Dato il grafico a dispersione, aggiungi lo strato labs() impostando il titolo (title) su 'Title', l'etichetta dell'asse x su 'Age' e l'etichetta dell'asse y su 'Income'.
Mostra suggerimento
Usa labs(title = 'Title', x = 'Age', y = 'Income') concatenandolo con il '+'.
Soluzione disponibile dopo 3 tentativi
Esercizio 2: Applica un tema pulito
Applica il tema grafico theme_minimal() al grafico a dispersione sottostante per migliorarne l'estetica visiva.
Mostra suggerimento
Usa il segno '+' e aggiungi la funzione theme_minimal().
Soluzione disponibile dopo 3 tentativi
Esercizio 3: Dividi il grafico con facet_wrap
Usa la funzione facet_wrap() per suddividere il grafico a dispersione in pannelli differenti basandoti sulla colonna department.
Mostra suggerimento
Usa facet_wrap(~ department) per suddividere il grafico.
Soluzione disponibile dopo 3 tentativi
Esercizio 4: Inverti gli assi coordinati
Per rendere leggibile un grafico a colonne con molte categorie, puoi invertire gli assi x e y. Aggiungi lo strato coord_flip() al grafico a barre.
Mostra suggerimento
Usa coord_flip() legandolo alla pipeline ggplot con '+'.
Soluzione disponibile dopo 3 tentativi
Esercizio 5: Grafico completo da pubblicazione
Crea un grafico completo su df: mappa age su x, income su y e color su gender in geom_point(). Suddividi il grafico con facet_wrap() per department, aggiungi labs() con titolo 'Salary by Age' e infine applica theme_minimal().
Mostra suggerimento
Unisci tutti gli strati usando '+': ggplot(...) + geom_point() + facet_wrap(~ department) + labs(title = 'Salary by Age') + theme_minimal()
Soluzione disponibile dopo 3 tentativi