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:legenda

Legenda (legend)

Per inserire una legenda nel grafico, si utilizza il comando legend(). La legenda occupa un livello a se stante, e viene disegnata sopra il grafico. Pertanto il comando va dato dopo quello che disegna il grafico:

plot()
legend()

Funzione

legend(x, y = NULL, legend, fill = NULL, col = par("col"),
       border="black", lty, lwd, pch,
       angle = 45, density = NULL, bty = "o", bg = par("bg"),
       box.lwd = par("lwd"), box.lty = par("lty"), box.col = par("fg"),
       pt.bg = NA, cex = 1, pt.cex = cex, pt.lwd = lwd,
       xjust = 0, yjust = 1, x.intersp = 1, y.intersp = 1,
       adj = c(0, 0.5), text.width = NULL, text.col = par("col"), text.font = NULL,
       merge = do.lines && has.pch, trace = FALSE,
       plot = TRUE, ncol = 1, horiz = FALSE, title = NULL,
       inset = 0, xpd, title.col = text.col, title.adj = 0.5,
       seg.len = 2)

Gli elementi essenziali della legenda sono, comunque:

  • le coordinate del box della legenda (x,y), ovvero la posizione della legenda nell’area del grafico, definite in base alla scala degli assi;
  • le voci della legenda (legend);
  • i simboli (pch) o le linee (lty, ltw) ed eventualmente — se il grafico è a colori — i colori (col, pt.col, pt.bg, fill) corrispondenti alle voci della legenda;
  • il titolo (title).

L’argomento legend può essere utilizzato direttamente nel comando del grafico. La legenda verrà per il resto disegnata con le opzioni di default: in altro a destra, con contorno nero, riempimento trasparente, senza titolo.

# dati
require(car)
data(SLID)
 
barplot(
  table(SLID$language, SLID$sex),
  beside = T,
  col = c(2:4),
  legend = levels(SLID$language)
)
&nolink |

Per avere la legenda nel grafico, è stato sufficiente inserire l'argomento legend ed indicare i livelli della variabile come testo della legenda.

Parametri principali

x, y coordinate per la legenda
legend voci della legenda
fill Colore di riempimento dei quadrati con i colori indicati. Obbligatorio per i grafici a barre, o con aree colorate (come i grafici a torta)
border Colore del bordo dei quadrati con i colori
col colore dei punti o delle linee che appariranno nella legenda
lty, lwd Tipo e spessore delle linee che appariranno nella legenda. Obbligatorio se il grafico contiene delle linee
pch tipo di punti che appariranno nella legenda, da indicare con un vettore di un carattere o di più caratteri. Obbligatorio se il grafico contiene dei punti
pt.bg colore di riempimento dei punti (col indica il colore del bordo, e il riempimento sarà bianco)
cex dimensione dei caratteri; indicandolo, si definisce il default per testi, titolo e punti
pt.cex dimensione dei punti
title titolo della legenda; possono essere usati qui alcuni argomenti della funzione title()
box.col colore del bordo della legenda

Per la sintassi, cfr. Parametri grafici.

Per la gestione dei colori, cfr. Gestione dei colori.

Esempi

Esempio 1

Costruiamo un grafico a barre bivariato:

barplot(table(SLID$language, SLID$sex), 
        names.arg = c("Donne", "Uomini"))     # traduco le modalità

Aggiungiamo la legenda:

legend(
  "bottomright",
  legend = c("Inglese", "Francese", "Altro"), # traduco le modalità
  fill = gray.colors(3),                      # palette
  bg = "white",                               # sfondo bianco
  title = "Lingua"                            # inserisco il titolo
)
&nolink |

In questo caso, il colore è stato indicato con gray.colors(3), perché per default barplot usa i toni di grigio, e divide la gamma per il numero delle modalità che devono essere rappresentate (vedi Gestione dei colori).

Esempio 2

Costruiamo il grafico a dispersione delle variabili “education” e “wages” del dataset MYSLID, e rappresentiamo sul piano una terza variabile “sex” attraverso il colore dei punti.

plot(SLID$education, SLID$wages, 
     xlab = "Anni di istruzione",
     ylab = "Retribuzione media",
     pch = 21,                      # tipo di punto
     col = SLID$sex,                # bordo dei punti
     bg = SLID$sex                  # riempimento dei punti
)

Aggiungiamo la legenda:

legend("topleft", 
       legend = c("Donne", "Uomini"), # testo della legenda
       pch = 21,                      # tipo di punto
       col = c(1:2),                  # bordo dei punti
       pt.bg = c(1:2),                # riempimento dei punti
       title = "Genere")
&nolink |

In questo caso, il colore dei punti della legenda è stato indicato con c(1:2), perché per default i grafici usano i colori della palette, nell'ordine in cui sono disposti nella palette stessa (vedi Gestione dei colori).

Script di esempio (download)

Legenda.R
# dati
require(car)
data(SLID)
 
# argomento legend
barplot(
  table(SLID$language, SLID$sex),
  beside = T,
  col = c(2:4),
  legend = levels(SLID$language)
)
 
# esempio 1
barplot(table(SLID$language, SLID$sex), 
        names.arg = c("Donne", "Uomini"))     # traduco le modalità
 
legend(
  "bottomright",
  legend = c("Inglese", "Francese", "Altro"), # traduco le modalità
  fill = gray.colors(3),                      # palette
  bg = "white",                               # sfondo bianco
  title = "Lingua"                            # inserisco il titolo
)
 
# esempio 2
plot(SLID$education, SLID$wages, 
     xlab = "Anni di istruzione",
     ylab = "Retribuzione media",
     pch = 21,                      # tipo di punto
     col = SLID$sex,                # bordo dei punti
     bg = SLID$sex                  # riempimento dei punti
)
 
legend("topleft", 
       legend = c("Donne", "Uomini"), # testo della legenda
       pch = 21,                      # tipo di punto
       col = c(1:2),                  # bordo dei punti
       pt.bg = c(1:2),                # riempimento dei punti
       title = "Genere")
r/grafici/legenda.txt · Ultima modifica: 26/05/2021 15:18 da admin