Vai al contenuto principale

Tutorial su PCH in R

In questo tutorial scopri il plot character (PCH) in R.
· 5 min leggi

Scopri con l'IA

Il plot character, o pch, è l’argomento standard per impostare il simbolo che verrà disegnato in diverse funzioni di R.

Un testo esplicativo può essere aggiunto a un grafico in varie forme, tra cui etichette degli assi, titoli, legende o testo inserito direttamente nel grafico. Le funzioni grafiche di base in R in genere creano automaticamente le etichette degli assi, anche se possono essere sovrascritte tramite l’argomento xlab(), che permette di fornire la nostra etichetta per l’asse x, e ylab(), che permette di fornire la nostra etichetta per l’asse y.

Alcune funzioni grafiche di base forniscono anche titoli predefiniti, ma anche questi possono essere sovrascritti, come si vede qui:

library(MASS)
par(mfrow = c(1, 2))
plot(density(geyser$waiting))
plot(density(geyser$waiting), main = "Estimated density: \n Old Faithful waiting times")
Tutorial su PCH in R

Il grafico a sinistra usa il titolo predefinito restituito dalla funzione density, che indica che il grafico è stato generato da questa funzione con le sue opzioni predefinite e fornisce anche la specifica R della variabile di cui stiamo tracciando la densità. Nel grafico a destra, questo titolo predefinito è stato sovrascritto specificando l’argomento opzionale main. Nota che includendo il carattere di ritorno a capo, backslash n, stiamo creando un titolo su due righe all’interno di questa stringa di testo.

text() Function

Come le funzioni per linee e punti, text è una funzione grafica di basso livello che permette di aggiungere testo esplicativo al grafico esistente. Per farlo, dobbiamo specificare i valori per x e y, ovvero le coordinate del grafico in cui il testo deve apparire, e labels, un vettore di caratteri che specifica il testo da aggiungere.

text(x, y, adj)
Tutorial su PCH in R

Per impostazione predefinita, il testo aggiunto al grafico è centrato sui valori x specificati, ma l’argomento opzionale adj può essere usato per modificare l’allineamento.

Si noti che l’argomento adj della funzione text() determina il posizionamento orizzontale del testo e può assumere qualsiasi valore tra 0 (testo allineato a sinistra) e 1 (testo allineato a destra). In realtà, questo argomento può assumere valori al di fuori di tale intervallo. Ovvero, rendendo questo valore negativo il testo inizierà alla destra della posizione x specificata. Analogamente, impostando adj maggiore di 1 il testo terminerà alla sinistra della posizione x.

library(MASS)
plot(UScereal$fibre)
text(5, 28, "<-- Outliers [left-justified text at (5, 28)]", adj = 0)
text(65, 23, "[Right-justified text at (65, 23)]", adj = 1, col = "red")
text(5, 28, "[Centered text (default) at (31, 18)]", col = "blue")
Tutorial su PCH in R

Font, orientamenti e altre caratteristiche del testo

Di seguito vediamo alcuni modi in cui l’aspetto del testo aggiunto può essere modificato tramite argomenti opzionali della funzione text. Per impostazione predefinita, il testo è orizzontale rispetto alla pagina, ma questo può essere cambiato con l’argomento srt, che specifica l’angolo di orientamento rispetto all’asse orizzontale.

Di seguito, il testo in rosso è inclinato verso l’alto impostando srt al valore positivo di 30 gradi, mentre il testo in verde è inclinato verso il basso impostando srt uguale a -45.

Possiamo anche specificare il colore del testo con l’argomento col, e il testo in rosso mostra che possiamo cambiare la dimensione del testo con l’argomento cex. Impostando cex = 1.2, abbiamo indicato che il testo deve essere più grande del 20% rispetto al normale.

L’altra caratteristica del testo che è stata modificata in questo esempio è il font, impostato tramite l’argomento font. Il valore predefinito è font = 1, che specifica il testo normale, mentre font = 2 specifica il grassetto, font = 3 specifica il corsivo e font = 4 specifica grassetto e corsivo insieme.

library(MASS)
plot(Boston$rad)

# "Inner city" with adjusted colour and rotation
text(350, 24, adj = 1, "Inner city? -->", srt = 30, font = 2, cex = 1.2, col = "red")

# "Suburbs" with adjusted colour and rotation
text(100, 15, "Suburbs? -->", srt = -45, font = 3, col = "green")

title("Text with varying orientations, fonts, sizes & colors")
Tutorial su PCH in R

Regolare posizione, dimensione e font del testo

Nel seguente esempio, farai quanto segue:

  • Crea un grafico di MPG.city vs. Horsepower dal data frame Cars93, con i dati rappresentati da cerchi vuoti (pch predefinito).
  • Costruisci la variabile index3 usando la funzione which() che identifica i numeri di riga contenenti tutte le auto a 3 cilindri.
  • Usa la funzione points() per sovrapporre cerchi pieni, pch = 16, sopra tutti i punti del grafico che rappresentano le auto a 3 cilindri.
  • Usa la funzione text() con la variabile Make come prima per aggiungere etichette alla destra delle auto a 3 cilindri, ma ora usa adj = 0.2 per spostare le etichette più a destra, usa l’argomento cex per aumentare la dimensione delle etichette del 20% e usa l’argomento font per rendere le etichette in grassetto corsivo.
# Plot MPG.city vs. Horsepower as open circles
plot(Cars93$Horsepower, Cars93$MPG.city)

# Create index3, pointing to 3-cylinder cars
index3 <- which(Cars93$Cylinders == 3)

# Highlight 3-cylinder cars as solid circles
points(Cars93$Horsepower[index3],
       Cars93$MPG.city[index3],
       pch = 16)

# Add car names, offset from points, with larger bold text
text(Cars93$Horsepower[index3],
     Cars93$MPG.city[index3],
     Cars93$Make[index3],
     adj = -0.2, cex = 1.2, font = 4)

Eseguendo il codice sopra, si ottiene il seguente risultato:

Tutorial su PCH in R

Prova tu stesso.

Per saperne di più sull’aggiunta di testo ai grafici, guarda questo video del nostro corso Data Visualization in R.

Questo contenuto è tratto dal corso Data Visualization in R di Ronald Pearson su DataCamp.

Argomenti

Correlato