Vedi I temi predefiniti (ggplot2)
Per conoscere i valori del tema in uso:
theme_get()
Per modificare un aspetto del tema all'interno del grafico, usiamo la funzione theme():
ggplot(data, aes ...) + theme()
ad esempio
theme(text = element_text(...)
All'interno di theme() possono essere cioè inseriti gli elementi da modificare, indicati nell'aiuto della funzione:
theme( line, # linee rect, # bordi e sfondo text, # testo (formato) title, # titoli (formato) aspect.ratio, ... )
e le funzioni element_() per modificarli:
| argomenti | ||
element_text() | testo | family, size, face, colour/color, hjust, vjust (allineamento) angle, lineheight, margin (angolo, spaziatura e margine) |
element_line() | linee | colour/color, size, linetype, lineend, arrow |
element_rect() | bordi e sfondi | fill, colour/color, size, linetype |
element_blank() | vuoto |
Per modificare l'aspetto delle griglie, abbiamo i seguenti argomenti di theme():
panel.grid | griglia | element_line(), element_blank()(es.: panel.grid = element.line(…) |
panel.grid.major | griglia principale | |
panel.grid.major.x, panel.grid.major.y | griglia principale dei singoli assi | |
panel.grid.minor | griglia secondaria | |
panel.grid.minor.x, panel.grid.minor.y | griglia secondaria dei singoli assi |
Ad esempio, immaginiamo di voler cambiare il tipo di linea della griglia secondaria, in linea tratteggiata (''element_line(linetype = 2)''), in un grafico di serie storica.
Creiamo il grafico base di una serie storica, e salviamolo come oggetto ''p'':
library(ggfortify) p1 <- AirPassengers %>% autoplot()
Per modificare la griglia, aggiungiamo theme(panel.grid.minor = element_line(linetype = 2)):
p1 + theme(panel.grid.minor = element_line(linetype = 2))
Per lasciare solo la griglia orizzontale, ed eliminare quella verticale, usiamo element_blank() sia con panel.grid.major.x che con panel.grid.minor.x:
p1 + theme(panel.grid.major.x = element_blank(), panel.grid.minor.x = element_blank())
Vedi anche: Assi e unità di misura (ggplot2)
Per eliminare assi e griglia:
theme(axis.text = element_blank(),
axis.title = element_blank(),
panel.grid.major = element_blank(),
panel.grid.minor = element_blank()
Oppure: theme(panel.grid = element_blank())
Per modificare il tipo carattere usato in tutto il grafico:
cars %>% ggplot(aes(speed, dist)) + geom_point() + labs(subtitle = "Tema classic con font 'Garamond'", title = "Un tema classico") + theme_classic() + theme(text = element_text(family = "Garamond", size = 14))
Imposto il tema theme_minimal, e la dimensione base del carattere dei grafici a 18:
theme_set(theme_minimal(base_size = 18))
Imposto il tema theme_minimal, e la dimensione base del carattere dei grafici a 18, ma riduco la dimensione delle etichette dell'asse delle x, e della legenda (legend.text = element_text(size = “95%”))
theme_set(theme_minimal(base_size = 18) + theme(axis.text.x = element_text(size = 11), legend.text = element_text(size = "95%")))
Per cambiare la paletta di colori all'interno del tema predefinito, interveniamo sulla funzione scale_fill_ …(). Ad esempio:
# per la paletta library(RColorBrewer) # fill per i caratteri discreti scale_fill_discrete <- function(...) scale_fill_manual(values=brewer.pal(9,"Set1"))
# color per i caratteri discreti scale_color_discrete <- function(...) scale_color_manual(values=brewer.pal(9,"Set1"))