Ricerca Sociale con R

Una wiki per l'analisi dei dati con R

Strumenti Utente

Strumenti Sito


Il Laboratorio di Analisi dei Dati con R, dell'Università di Teramo su piattaforma Meet, inizia il 9 aprile 2021 - Iscrizione - email
r:grafici:annotazioni

Annotazioni (text e mtext)

text

Con la funzione text è possibile aggiungere del testo libero all'interno del grafico. Tipicamente, questa funzione viene utilizzata per aggiungere etichette ai punti di uno Scatterplot (grafico a dispersione), o le etichette dei valori delle variabili rappresentate dal grafico.

Funzione

 text(x, y = NULL, labels = seq_along(x), adj = NULL,
     pos = NULL, offset = 0.5, cex = 1, col = NULL, font = NULL, ...)

Parametri

x, y coordinate del testo
labels testo o testi da inserire
adj allineamento del testo
pos Posizione del testo rispetto al punto indicato dalle coordinate: 1 = sotto, 2 = a sinistra, 3 = sopra , 4 = a destra. Se specificato prevale su adj
offset se pos è indicato, distanza delle etichette dal punto delle coordinate in frazioni delle dimensioni del carattere (default=0.5)
cex dimensione del carattere in termini proporzionali
col colore del carattere
font carattere

Per la sintassi dei parametri, vedi Parametri grafici

Esempi

Esempio 1

Scatterplot con identificativi dei punti:

plot(cars$speed, cars$dist,
     pch = 21,
     bg = "black")
text(
  x = cars$speed,
  y = cars$dist,
  row.names(cars),
  cex = 0.6,
  pos = 2,
  col = "red"
)
 |Identificativo dei casi (row.names) come etichette dei punti

nel comando text:

  • i vettori delle coordinate dei punti sono le variabili (cars$speed e cars$dist)
  • il vettore con le etichette dei punti è l'identificativo di riga del dataset (row.names(cars))

Naturalmente, è possibile utilizzare come vettore delle etichette dei punti anche un fattore (o un vettore numerico) del dataset.

Esempio 2

In un grafico a barre, è necessario indicare le coordinate delle barre: solitamente, del loro punto centrale (x) e della loro altezza (y).

# dati
require(car)
 
# frequenze
tab <- table(SLID$language)
 
# coordinate del punto centrale delle barre
coordx <- barplot(tab, 
                  names.arg = c("Inglese", "Francese", "Altro")) 
# etichette
text(x = coordx, 
     y = tab / 2,       # altezza = al centro della barra 
     labels = tab)      # valori
 |

Esempio 3

Grafico a barre bivariato, con percentuali, in grassetto.

# frequenze
tab <- table(SLID$language, SLID$sex)
 
# coordinate del punto centrale delle barre
coordx <- barplot(tab, 
                  beside = T,
                  names.arg = c("Donne", "Uomini"))
 
# legenda
legend("topright",
       legend = c("Inglese", "Francese", "Altro"),
       fill = gray.colors(3))
 
# percentuali di colonna
labs <- round(prop.table(tab, 2) * 100, 1)  
 
# etichette
text(x = coordx,
     y = 150,
     labels = paste(labs, "%", sep = ""),    # aggiunge % dopo il valore
     font = 2)                               # grassetto
 |

Esempio 4

Grafico a torta con etichette dei valori. Vedi: Grafici a torta.

Script di esempio (download)

Etichette.R
# ESEMPIO 1
 
plot(cars$speed, cars$dist,
     pch = 21,
     bg = "black")
text(
  x = cars$speed,
  y = cars$dist,
  row.names(cars),
  cex = 0.6,
  pos = 2,
  col = "red"
)
 
# ESEMPIO 2
 
# dati
require(car)
 
# frequenze
tab <- table(SLID$language)
 
# coordinate del punto centrale delle barre
coordx <- barplot(tab,
                  names.arg = c("Inglese", "Francese", "Altro")) 
# etichette
text(x = coordx,
     y = tab / 2,       # altezza = al centro della barra
     labels = tab)      # valori
 
# ESEMPIO 3
 
# frequenze
tab <- table(SLID$language, SLID$sex)
 
# coordinate del punto centrale delle barre
coordx <- barplot(tab, 
                  beside = T,
                  names.arg = c("Donne", "Uomini"))
 
# legenda
legend("topright",
       legend = c("Inglese", "Francese", "Altro"),
       fill = gray.colors(3))
 
# percentuali di colonna
labs <- round(prop.table(tab, 2) * 100, 1)  
 
# etichette
text(x = coordx,
     y = 150,
     labels = paste(labs, "%", sep = ""),    # aggiunge % dopo il valore
     font = 2)                               # grassetto
 
# rimuovere gli oggetti creati
rm(coordx, labs, tab)

mtext

da inserire

r/grafici/annotazioni.txt · Ultima modifica: 26/10/2018 06:51 da admin