Hands-on Workshop
Cosa impareremo oggi:
facet_wrap() vs facet_grid()Approccio:
Scarica il file esercizi: 07_facets_coordinate_exercises.R
30 esercizi organizzati in 6 parti:
Approccio suggerito:
Definizione:
Il faceting crea small multiples: grafici multipli che mostrano subset dei dati.
Vantaggi:
Quando usare:
Due funzioni principali:
facet_wrap(): una variabile
facet_grid(): due variabili
Regola d’oro
Facets vs Aesthetics:
color/fillCaratteristiche:
Formula notation
~ variable indica “facet by variable”
Il ~ separa “nulla” (lato sinistro) da variabile di faceting (lato destro)
ncol vs nrow
Specifica uno dei due, non entrambi! Se specifichi entrambi, ncol ha precedenza.
Adesso tocca a te!
Quando usare:
wrap vs grid:
| Feature | wrap | grid |
|---|---|---|
| Variabili | 1 (tipico) | 2 |
| Layout | Automatico | Fisso |
| Flessibilità | Alta | Bassa |
| Confronti | Generali | Precisi |
Adesso tocca a te!
Scale fisse (default):
Scale libere:
Quando usare scale libere:
✅ Range molto diversi tra gruppi
✅ Focus su pattern non su valori assoluti
✅ Ogni pannello self-contained
Quando NON usare:
❌ Confronti quantitativi precisi
❌ Comparare magnitudini
❌ Pattern attraverso pannelli
Attenzione!
Scale libere possono ingannare:
Pattern simili possono rappresentare magnitudini molto diverse!
Adesso tocca a te!
coord_cartesian vs xlim():
# xlim() rimuove dati!
ggplot(mpg, aes(x = displ, y = hwy)) +
geom_point() +
geom_smooth() +
xlim(3, 5) # smooth ricalcolato!
# coord_cartesian() zoom only
ggplot(mpg, aes(x = displ, y = hwy)) +
geom_point() +
geom_smooth() +
coord_cartesian(xlim = c(3, 5))
# smooth su tutti i datiRegola
Usa coord_cartesian() per zoom,
xlim()/ylim() solo se vuoi rimuovere dati
Quando usare:
✅ Mappe (distanze reali)
✅ Scatter plots dove scale devono essere comparabili
✅ Dati geometrici (coordinate spaziali)
Esempio - distanze:
Trasforma in polare:
# Pie chart
ggplot(data, aes(x = "", y = value,
fill = category)) +
geom_col() +
coord_polar(theta = "y")
# Bullseye/radar chart
ggplot(data, aes(x = category, y = value)) +
geom_col() +
coord_polar(theta = "x")Parametri:
theta: quale asse diventa angolostart: angolo iniziale (radianti)direction: 1 (antiorario) o -1 (orario)Applicazioni:
Pie charts
Generalmente sconsigliati:
Se proprio necessario, max 5-6 categorie.
Adesso tocca a te!
Differenze:
| Aspetto | scale_*_log10() | coord_trans() |
|---|---|---|
| Trasformazione | Prima di stat | Dopo rendering |
| Smooth lines | Su dati trasf. | Su dati originali |
| Axis labels | Log scale | Log scale |
| Quando | Quasi sempre | Raramente |
Preferisci scale_*_log10()
Trasforma prima del calcolo → risultati corretti per smooth, stat, etc.
Adesso tocca a te!
Si possono combinare:
# Facets + coord_flip
ggplot(mpg, aes(x = class, y = hwy)) +
geom_boxplot() +
facet_wrap(~ year) +
coord_flip()
# Facets + coord_fixed
ggplot(quakes, aes(x = long, y = lat, color = depth)) +
geom_point() +
facet_wrap(~ cut(mag, breaks = 3)) +
coord_fixed(ratio = 1)
# Facets + zoom
ggplot(diamonds, aes(x = carat, y = price)) +
geom_point(alpha = 0.1) +
facet_wrap(~ cut) +
coord_cartesian(xlim = c(0, 3), ylim = c(0, 15000))Principio: Facets organizzano dati, coordinates trasformano visualizzazione.
Faceting:
reorder() o factor() per ordinamento significativolabeller)theme(strip.text = element_text(size = ...)))Coordinate:
Combinazioni:
Adesso tocca a te!
Documentazione:
Packages complementari:
ggforce: facets avanzati (es. facet_zoom())ggh4x: faceting nested e altre estensioniProssima sessione:
Continua a praticare! Facets e coordinates sono fondamentali per organizzare visualizzazioni complesse.

REVELO Training - Data Viz 2025