2015-07-27 36 views
5

Ho paura di aver perso la trama, letteralmente! Perché il comando asse non inserisce un asse x nella trama seguente? Deve essere qualcosa di ridicolo, perché non posso semplificare molto di più.Asse R non visualizzato

yar <- c(.2,.1,.05,.03,.02) 
plot(yar,xaxt='n') 
axis(1, at=c(0.01,0.02,0.03,0.04,0.05)) 

risposta

2

Il motivo per il vostro asse x non sta comparendo è che il vostro posto in una regione della trama in cui è così piccolo che non è visibile come output. Si ha rilasciato la seguente comando plot:

plot(yar, xaxt='n') 

che in realtà è lo stesso di fare

plot(c(1:5), yar, xaxt='n') 

Dal momento che non è specificato alcun valore di x, il valore di default x sono solo i numeri di conteggio da 1 a 5 corrispondenti a y valori ha specificato.

La soluzione al problema è posizionare l'asse x dove sarà visibile. Quindi si può provare il codice seguente:

xar <- 0.01*c(1:5) 
yar <- c(.2,.1,.05,.03,.02) 
plot(xar, yar, xaxt='n') 
axis(1, at=xar) 
+0

stesse risposte, solo una questione di secondi :) – SabDeM

+0

bene ad essere onesti mi piace in realtà che si è utilizzato un complotto. –

+0

R è abbastanza intelligente sul ridimensionamento degli assi, solo il 'plot (xar, yar)' funzionerebbe e lo spazia automaticamente in modo ordinato. – thelatemail

2

Poiché la funzione plot servono due elementi (coordinate): x ed y. È fornito le coordinate y e senza definiti dall'utente coordinate x, R assegna norma 1:n coordinate dove n è uguale al numero di punti, in questo caso 5.

Con i dati Prova questo:

yar <- c(.2,.1,.05,.03,.02) 
plot(yar, xaxt='n') 
axis(1, at=c(1, 2, 3, 4, 5)) 

Si ha questo questa uscita:

enter image description here

Come soluzione qui è un approccio: è possibile inserire il x coordinate ai valori predefiniti selezionati da R e quindi si CÀ n usa etichette come desideri. Guarda il seguente codice e in particolare l'argomento labels della funzione axis.

yar <- c(.2,.1,.05,.03,.02) 
plot(yar, xaxt='n') 
axis(1, at = c(1, 2, 3, 4, 5), labels = as.character(sort(yar))) 

che produce:

enter image description here

+1

Il tuo secondo approccio non è una buona idea. Hai etichette spaziate uguali che non sono numericamente equidistanti. – thelatemail

+0

@thelatemail Sono assolutamente d'accordo con te. Mi piace il primo, ma a dire il vero non mi piacciono tutti perché una trama ben fatta, dal mio punto di vista, dovrebbe avere le coordinate xey senza fare in modo che un programma indovini qualcuna di esse. Ma l'OP non li ha forniti, quindi ho deciso di fare quel codice "non ortodosso". – SabDeM