2012-02-20 5 views
9

La legenda che R crea quando si chiama legend() ha i simboli (oi tipi di linea ecc.) Sulla sinistra e le etichette sulla destra. Mi piacerebbe il contrario, vale a dire le etichette a sinistra (allineate a destra) ei simboli a destra.Come posso scambiare etichette e simboli in una legenda in R?

So che posso usare adj per regolare la posizione delle etichette, ma con questa non sono più allineate correttamente. Ad esempio, se si imposta adj=2, le etichette si trovano a sinistra dei simboli, ma la fine del testo non è allineata con i simboli.

Qualsiasi suggerimento su come eseguire questa operazione utilizzando la funzione standard legend() o un pacchetto sarebbe apprezzato.

risposta

13

Se si imposta trace = TRUE e quindi salvare l'output, è possibile disegnare la leggenda e quindi aggiungere le etichette con una chiamata a text() utilizzando le coordinate fornite dal trace, impostando pos = 2 per l'allineamento a destra. Ecco un esempio:

set.seed(1) 
    plot(1:10,runif(min=0,max=10,10),type='l',ylim=c(0,10),xlim=c(0,10),col=1) 
    lines(1:10,runif(min=0,max=10,10),col=2,lty=2) 
    lines(1:10,runif(min=0,max=10,10),col=3,lty=2) 
    a <- legend(1,10,lty=1:3,col=1:3,legend=c("","",""),bty="n",trace=TRUE) 
    text(a$text$x-1,a$text$y,c("line 1","line 2","line 3"),pos=2) 

enter image description here

Problemi correlati