Ricerca Sociale con R

Una wiki per l'analisi dei dati con R

Strumenti Utente

Strumenti Sito


r:ggplot2:assi

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_ o y_, 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())

Vedi: Modificare gli elementi del tema

Domande? Scrivimi

Messenger Telegram Email
r/ggplot2/assi.txt · Ultima modifica: 05/09/2025 16:48 da Agnese Vardanega