Ricerca Sociale con R

Una wiki per l'analisi dei dati con R

Strumenti Utente

Strumenti Sito


r:ggplot2:modificare_tema

Modificare gli elementi del tema

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

I titoli

Le griglie

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())

Gli assi

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())

I caratteri

Tipo di carattere

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))

Dimensione dei caratteri

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%")))

Palette di colori

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"))

Domande? Scrivimi

su Telegram per email
r/ggplot2/modificare_tema.txt · Ultima modifica: 05/09/2025 16:48 da Agnese Vardanega