2012-02-20 19 views
9

La leyenda que R crea al llamar al legend() tiene los símbolos (o tipos de línea, etc.) a la izquierda y las etiquetas a la derecha. Me gustaría al revés, es decir, etiquetas a la izquierda (alineado a la derecha) y los símbolos a la derecha.¿Cómo puedo cambiar etiquetas y símbolos en una leyenda en R?

Sé que puedo usar adj para ajustar la posición de las etiquetas, pero con esto ya no están alineadas correctamente. Si configuro adj=2 por ejemplo, las etiquetas están a la izquierda de los símbolos, pero el final del texto no está alineado con los símbolos.

Se agradecerán todos los punteros sobre cómo hacer esto utilizando la función estándar legend() o un paquete.

Respuesta

13

Si establece trace = TRUE y luego guarda la salida, se puede dibujar la leyenda y luego agregar las etiquetas con una llamada a text() usando las coordenadas dadas por trace, el establecimiento de pos = 2 para la alineación correcta. He aquí un ejemplo:

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

Cuestiones relacionadas