Indice
Assi e unità di misura (ggplot2)
Come modificare la rappresentazione degli assi del grafico: unità di misura (scala), segni di graduazione, etichette.
Il sistema di riferimento
Le variabili indicate nella funzione aes()
costruiscono il sistema di riferimento del grafico, con le relative unità di misura sull'asse delle X e delle Y.
Così, se non indichiamo una geometria in geom
, otteniamo il sistema di riferimento senza alcuna rappresentazione grafica all'interno:
library(tidyverse) cars %>% ggplot(aes(dist, speed))
Scale e unità di misura
Le scale degli assi (unità di misura e altro) possono essere modificate con una serie di funzioni che:
- iniziano con
scale_
; - sono seguite da
x_
oy_
, a seconda dell’asse; - e dal tipo di scala:
funzione (scale_x_/scale_y_) | carattere |
---|---|
discrete | discreto |
continuous | continuo |
log10, sqrt, reverse | trasformazioni del carattere continuo |
binned | continuo in classi |
date , time, datetime | tempo |
All'interno di queste funzioni, possono essere usati gli argomenti per indicare quali e quanti segni di graduazione rappresentare, quali etichette indicare, ed altro.
principali argomenti | |
---|---|
name | nome |
breaks | segni di graduazione principali (un vettore numerico di posizioni, o una funzione) |
n.breaks | numero dei segni di graduazione (approssimativo) |
minor_breaks | segni di graduazione secondari |
labels | etichette |
limits | limiti degli assi |
guide | una funzione per creare la legenda, o il nome della legenda |
Esempi
numero dei segni di graduazione
cars %>% ggplot(aes(speed, dist)) + geom_point() + scale_y_continuous(n.breaks = 10, name = "spazio di frenata")
senza segni di graduazione secondari
cars %>% ggplot(aes(speed, dist)) + geom_point() + scale_x_continuous(minor_breaks = NULL)
etichette
starwars %>% count(sex) %>% drop_na() %>% ggplot(aes(y = reorder(sex, n), x = n)) + geom_col() + scale_y_discrete(labels = c("ermafrodita", "nessuno", "femmina", "maschio"), name = "sesso")
Serie storiche: segni di graduazione e etichette
# per rappresentare le serie storiche con ggplot2 library(ggfortify) AirPassengers %>% autoplot() + scale_x_date(date_breaks = "2 years", date_labels = "%Y")
Etichette percentuali degli assi
Per impostare le etichette dei segni di graduazione in formato percentuale, usiamo la funzione funzione percent_format()
(del pacchetto scales), che interpreta le frequenze relative.
Si consideri il seguente esempio:
starwars %>% count(sex) %>% drop_na() %>% mutate(p = n/sum(n))
## # A tibble: 4 x 3 ## sex n p ## <chr> <int> <dbl> ## 1 female 16 0.193 ## 2 hermaphroditic 1 0.0120 ## 3 male 60 0.723 ## 4 none 6 0.0723
Costruiamo il grafico, con etichette ogni 10 punti percentuali, e formato numerico italiano:
starwars %>% count(sex) %>% drop_na() %>% mutate(p = n/sum(n)) %>% ggplot(aes(y = reorder(sex, p), x = p)) + geom_col() + scale_x_continuous(labels = scales::percent_format(decimal.mark = ","), # la sequenza va indicata con le frequenze relative breaks=seq(0, 0.7, 0.1)) + labs(x = "Valori percentuali", y = NULL)
Titoli degli assi
I titoli degli assi possono essere modificati anche con labs()
. Vedi Titoli dei grafici (ggplot2)
Eliminare gli assi
Per non rappresentare entrambi gli assi nel grafico, possiamo usare il tema theme_void()
, come negli esempi alla voce Rappresentare i dati geografici, oppure usare theme()
theme(panel.grid = element_blank())