# PUNTO 1 ------------------------------------------------
HW 04 - ggplot2
Data di consegna: lunedì 28 ottobre 2024
Introduzione
In questo compito utilizzerai i comandi utili per:
- costruire rappresentazioni grafiche usando la logica del package
ggplot2
Obiettivi di apprendimento
Lo svolgimento di questo compito ti permetterà di:
- creare rappresentazione grafiche univariate e bivariate
- creare rappresentazione grafiche utillizzando variabili aggiuntive a quelle usate per il grafico di base per visualizzare più caratteristiche di interesse dei dati
Istruzioni per l’uso
- Crea un progetto associandolo ad una cartella “RLab_hw04_cognome_nome” sul tuo disco: nel mio caso il nome della cartella sarebbe: “RLab_hw04_vistocco_domenico” e copia all’interno della cartella il seguente file: dati-citta-italiane.xlsx.
Una descrizione del contenuto del file con la corrispondente legenda delle variabili è disponibile sul primo foglio (Descrizione variabili) della cartella di lavoro MS-Excel.
Rispondi ai vari punti salvando le risposte in un file R con il nome “hw04_cognome_nome.R”: ad esempio nel mio caso il nome del file sarebbe “hw04_vistocco_domenico.R”.
Per rispondere ad ogni punto inserisci un’etichetta di sezione (che puoi inserire nello script usando la combinazione di testi CTRL/CMD + SHIFT + R) utilizzando il punto cui sta rispondendo. Ad esempio, per rispondere al punto 1 del compito, usa un’etichetta di sezione:
Utilizza i commenti per rispondere alle domande in cui viene chiesta un’interpretazione da parte tua: lo script deve cioè essere funzionante quando si eseguono tutti i comandi con il pulsante Source.
Lo script viene valutato sia in base alla correttezza del codice che in base alla qualità (stile utilizzato per rendere lo script leggibile ed ordinato).
Esercizi
Ricordati di utilizzare i commenti per le risposte aperte.
Parte 1: Importazione, pulizia e preparazione dei dati
Importa il foglio
Datidel file dati-citta-italiane-ggplot2.csv nell’oggettodati_provinceuniformando i nomi della tabella sfruttando la funzioneclean_names{janitor}Aggiungi alla tabella
dati_provinceuna nuova colonnaclassi_redditocategorizzando la variabileredditoin tre classi di uguale ampiezza usando le seguenti etichette per le tre classi:basso,medioealto
Parte 2: Rappresentazioni grafiche
Costruisci un grafico utilizzando boxplot paralleli per confrontare l’andamento della variabile reddito tra le varie zone geografiche
Costruisci un grafico che permetta di confrontare l’andamento della variabile reddito tra le varie zone geografiche utilizzando degli istogrammi
Sfrutta la divisione in pannelli del grafico per ottenere una rappresentazione separata per i vari livelli della variabile reddito
- Costruisci un grafico che permetta di confrontare l’andamento della variabile reddito tra le varie zone geografiche utilizzando delle funzioni di densità
Rappresenta le quattro funzioni di densità in un unico grafico sfruttando il colore per distinguerle
Ripeti il grafico precedente sfruttando il package
ggridgesper ottenere delle funzioni di densità parallele e non sovrapposteCostruisci una rappresentazione grafica che sfrutti un diagramma a barre, rappresentando una barra per ciascuna area geografica (asse orizzontale), la cui altezza (asse verticale) corrisponda al valore del reddito medio delle regioni dell’area. Nella rappresentazione ordina le barre in senso decrescente rispetto ai valori del reddito e sovraimponi una spezzata che mostri l’andamento del reddito nelle varie aree geografiche
- per ordinare le barre rispetto ai valori del reddito medio puoi sfruttare una tra le funzioni
reorder {base}ofct_reorder {forcats}. Nota: puoi effettuare l’ordinamento sia prima di costruire il grafico in un’operazione dimutatedella tabella, che direttamente nel passaggio dellaaestheticsdel grafico - per ottenere il diagramma richiesto puoi sfruttare la funzione
geom_barimpostando aidentityla statistica utilizzata, oppure direttamente la funzionegeom_colche permette di ottenere un diagramma a barre ma richiede di specificare sia i valori inxche iny
Costruisci una rappresentazione grafica che sfrutti un diagramma a barre, rappresentando una barra per ciascuna regione (asse verticale), la cui altezza (asse orizzontale) corrisponda al valore del reddito medio della regione, usando un colore di riempimento per le barre in base all’area geografica delle regioni. Nella rappresentazione ordina le barre in senso decrescente rispetto ai valori del reddito
Costruisci un cartogramma dell’Italia rappresentando i contorni delle singole province
- per ottenere la tabella dati da rappresentare puoi usare il seguente comando
R:italy <- map_data("italy")che sfrutta la funzionemap_datadisponibile inggplot2che permette di scaricare i dati necessari alla rappresentazione - per costruire la mappa usa il seguente codice
ggplot(italy, aes(long, lat, group = group))e a questo sovraimponi uno stratogeom_polygonusando il blu come colore dei bordi e il bianco come colore di riempimento
- Costruisci un cartogramma dell’Italia usando come colore di riempimento il valore del reddito delle singole province
- per procedere effettua un join tra la tabella dati importata in risposta al punto
1del compito e la tabellaitalycreata per rispondere al punto precedente - prima di procedere all’operazione di join controlla che i nomi delle province nelle due tabella siano uguali: per le province in cui sono presenti difformità puoi sfruttare le operazioni di
mutateerecodeper uniformare le stringhe di testo
- Riproduci il seguente grafico che permette di studiare la relazione tra il reddito e l’indicatore relativo alle librerie per le varie province, differenziandole per zona geografica di appartenenza:

- per ordinare i pannelli nell’ordine sopra utilizzato sfrutta una variabile di tipo
factorper la zona geografica - gli argomenti
nrowedncoldifacet_wrapti permettono di fissare la struttura in cui sono organizzati i pannelli
- Riproduci il seguente grafico che riporta il ranking delle regioni italiane (asse verticale) in termini del reddito medio (asse orizzontale) dei capoluoghi di provincia di ciascuna regione:

Prova a riprodurre il grafico usando le tre strade alternative indicate nei seguenti suggerimenti.
- per ordinare le regioni in ordine decrescente del reddito medio sfrutta la funzione
fct_reorder{forcats}, disponibile quando si caricatidyverse - sfrutta uno strato
geom_segmentper ottenere le aste - sfrutta uno strato
geom_pointper sovraimporre i punti - sfrutta il tema
theme_cleandisponibile nel packageggthemes
- per ordinare le regioni in ordine decrescente del reddito medio sfrutta la funzione
fct_reorder{forcats}, disponibile quando si caricatidyverse - sfrutta uno strato
geom_barper ottenere le aste regolando l’attributowidthper fissarne l’ampiezza e cambiando la statistica di default instat = "identity" - sfrutta uno strato
geom_pointper sovraimporre i punti - sfrutta il tema
theme_cleandisponibile nel packageggthemes
- per ordinare le regioni in ordine decrescente del reddito medio sfrutta la funzione
fct_reorder{forcats}, disponibile quando si caricatidyverse - sfrutta la funzione
geom_lollipop{ggalt} per ottenere direttamente l’oggetto geometricolollipop - sfrutta il tema
theme_cleandisponibile nel packageggthemes
- Riproduci il seguente grafico:

Anche in questo caso prova a riprodurre il grafico usando le tre strade alternative indicate nei suggerimenti riportati per il precedente grafico.
Consegna
Per inviare la tua soluzione:
- Salva il file .R con le tue soluzioni
- Chiudi il progetto RStudio
- Comprimi in un file .zip la cartella associata al progetto
- Carica il file .zip salvato in risposta al compito assegnato su Teams
Valutazione
Totale punti disponibili: 110 punti
| Component | Punti |
|---|---|
| Es 1 - 15 | 100 |
| Workflow & formattazione | 101 |
Footnotes
La valutazione al “Workflow & formattazione” tiene conto del principio di riproducibilità del codice: lo script caricato deve funzionare senza errori su qualunque PC dando gli stessi risultati↩︎