2011-08-30 15 views
10

So che sarà veloce e semplice per alcuni di voi. Voglio solo avere un'etichetta orizzontale sull'asse y usando mtext(). Immagino, ma ho sprecato le ultime 2 ore cercando di capirlo ... Nei seguenti esempi, voglio solo che le etichette y (myLab) siano orizzontali e giustificate a sinistra.mtext() per aggiungere etichette orizzontali y

myLab <- c("aaaaaaa", "bb", "c") 

par(oma=c(0,10,0,0)) # make a large left maring for the labels 

plot(x=c(1:3), 
    y=c(1:3), 
    pch="|", 
    lwd=3, 
    tck=0.01, 
    yaxt="n", 
    ylab="", 
    xlab="my legend", 
    at= c(1:3), 
    ) 


mtext(text=myLab, 
     side=2, 
     outer = FALSE, 
     at=c(1:3) 
    ) 

Non è necessario utilizzare mtext(). Se hai un'alternativa migliore, faccelo sapere.

Grazie!

risposta

9

utilizzare l'argomento las:

mtext(text=myLab, las=1, 
     side=2, 
     outer = FALSE, 
     at=c(1:3) 
     ) 

li porta fino al bordo, ma si può pad con spazi finali nei valori MyLab. Si può giustificare sinistra utilizzando un valore adj di 0 (rispetto al valore di default di 1):

plot(x=c(1:3), 
     y=c(1:3), 
     pch="|", 
     lwd=3, 
     tck=0.01, 
     yaxt="n", 
     ylab="", 
     xlab="my legend" # removing extraneous `at` value that only throws a warning 
    ) 
mtext(text=myLab, las=1, adj=0, 
     side=2, 
     outer = FALSE, 
     line=3.5, at=1:3 
     ) 
+0

per questo genere di problema che ho 'par' sulla mia chiamata rapida?. –

+0

L'uso della linea = 1 lo sposta dal bordo anziché dagli spazi finali. – Olivier

Problemi correlati