Lezioni del modulo (1/2)
Grammatica e Geometrie di Base
La visualizzazione dei dati in R è dominata da ggplot2, un pacchetto basato sulla "Grammatica dei Grafici" (Grammar of Graphics). Questa teoria scompone i grafici in componenti semantici indipendenti, come i dati, le mappature estetiche e gli elementi geometrici.
La Struttura di ggplot2
Ogni grafico creato con ggplot2 inizia con la chiamata alla funzione ggplot(), alla quale associamo un data frame e definiamo come mappare le colonne del data frame alle proprietà visive tramite la funzione aes() (aesthetics).
Successivamente, aggiungiamo strati geometrici usando l'operatore + (attenzione: si usa + e non %>% in ggplot2).
La struttura di base è:
ggplot(data = <DATA_FRAME>, mapping = aes(<ESTETICHE>)) +
<GEOMETRIA>()
Proprietà Estetiche (aes) e Geometrie (geom_*)
La funzione aes() definisce quali variabili dei dati controllano gli attributi del grafico:
x: Posizione sull'asse orizzontale.y: Posizione sull'asse verticale.color: Colore dei punti o delle linee.fill: Colore di riempimento di forme chiuse (es. barre).size: Dimensione degli elementi.
Le geometrie (geom_) definiscono il tipo di visualizzazione grafica:
1. Grafico a dispersione (geom_point())
Ideale per mostrare la relazione tra due variabili numeriche.
ggplot(df, aes(x = age, y = income)) +
geom_point()
2. Grafico a linee (geom_line())
Spesso usato per dati temporali o serie storiche.
ggplot(df, aes(x = year, y = sales)) +
geom_line()
3. Grafico a barre (geom_bar() e geom_col())
geom_bar() conta la frequenza di ciascuna categoria di default, mentre geom_col() rappresenta direttamente i valori presenti in una colonna y.
# Rappresenta il valore della colonna 'sales' per ogni 'category'
ggplot(df, aes(x = category, y = sales)) +
geom_col()
Prova tu
Esercizio 1: Crea un grafico a dispersione di base
Crea un grafico a dispersione (scatter plot) utilizzando il data frame df. Mappa la colonna height sull'asse x e la colonna weight sull'asse y. Usa geom_point().
Mostra suggerimento
Assicurati di usare ggplot(df, aes(x = height, y = weight)) + geom_point()
Soluzione disponibile dopo 3 tentativi
Esercizio 2: Aggiungi un colore basato sui dati
Modifica il grafico precedente mappando la proprietà color sulla colonna gender all'interno di aes() per colorare i punti in base al genere.
Mostra suggerimento
Includi color = gender all'interno di aes(), ad esempio: aes(x = height, y = weight, color = gender).
Soluzione disponibile dopo 3 tentativi
Esercizio 3: Grafico a linee
Crea un grafico a linee usando df. Mappa la colonna year sull'asse x e la colonna sales sull'asse y. Aggiungi il livello geometrico geom_line().
Mostra suggerimento
Usa ggplot(df, aes(x = year, y = sales)) + geom_line()
Soluzione disponibile dopo 3 tentativi
Esercizio 4: Grafico a barre con geom_col
Crea un grafico a colonne per visualizzare il valore dei dati. Mappa la colonna category sull'asse x e la colonna value sull'asse y. Usa la geometria geom_col().
Mostra suggerimento
Usa ggplot(df, aes(x = category, y = value)) + geom_col()
Soluzione disponibile dopo 3 tentativi
Esercizio 5: Combina più geometrie
In ggplot2 puoi sovrapporre strati geometrici. Crea un grafico che combini sia geom_point() che geom_smooth() mappando x_val sull'asse x e y_val sull'asse y.
Mostra suggerimento
Aggiungi sia geom_point() che geom_smooth() separati dal segno '+'.
Soluzione disponibile dopo 3 tentativi