2012-08-02 21 views
46

sto creando una trama in R e non mi piace i valori degli assi x essere tracciati dal R.Come specificare i valori reali x asse per tracciare come x asse zecche in R

Ad esempio:

x <- seq(10,200,10) 
y <- runif(x) 

plot(x,y) 

Questa traccia un grafico con i seguenti valori sull'asse X:

50, 100, 150, 200

Tuttavia, voglio tracciare i 20 valori 10,20, 30 ... 200 memorizzati nel variab le x, come valori dell'asse X. Ho perlustrato attraverso innumerevoli blog e il manuale conciso - dopo ore di ricerca, il più vicino Sono venuto a trovare qualcosa di utile è la seguente (riassunti): istruzioni

  1. chiamata plot() o par(), specificando argomento xaxt='n'
  2. chiama axis() es. axis(side = 1, at = seq(0, 10, by = 0.1), labels = FALSE, tcl = -0.2)

L'ho provato e il grafico risultante non aveva valori dell'asse x. È possibile che qualcuno là fuori sappia come farlo? Non posso credere che nessuno abbia mai provato a farlo prima.

risposta

66

Troverai la risposta alla tua domanda nella pagina di aiuto per ?axis.

Ecco uno degli esempi aiuto di pagina, modificato con i tuoi dati:

Opzione 1: utilizzare xaxp per definire l'asse etichette

plot(x,y, xaxt="n") 
axis(1, xaxp=c(10, 200, 19), las=2) 

Opzione 2: Uso at e seq() per definire le etichette :

plot(x,y, xaxt="n") 
axis(1, at = seq(10, 200, by = 10), las=2) 

Entrambe queste opzioni cedere la stessa grafica:

enter image description here


PS. Dal momento che hai un numero elevato di etichette, dovrai utilizzare ulteriori argomenti per inserire il testo nella trama. Io uso las per ruotare le etichette.

5

Dai uno sguardo più da vicino alla documentazione di ?axis. Se si guarda la descrizione dell'argomento labels, vedrete che si tratta:

"a logical value specifying whether (numerical) annotations are 
to be made at the tickmarks," 

Quindi, basta cambiare a true, e avrete le vostre etichette delle tacche.

x <- seq(10,200,10) 
y <- runif(x) 
plot(x,y,xaxt='n') 
axis(side = 1, at = x,labels = T) 
# Since TRUE is the default for labels, you can just use axis(side=1,at=x) 

stare attenti che se non allungare il vostro larghezza della finestra, quindi R potrebbe non essere in grado di scrivere tutte le etichette in. Gioca con la larghezza della finestra e vedrete cosa intendo.


Peccato che abbiate avuto problemi a trovare la documentazione! Quali erano i tuoi termini di ricerca?Prova a digitare r axis in Google e il primo collegamento che otterrai è Quick R page that I mentioned earlier. Scorri verso il basso fino a "Assi" e otterrai una piccola guida molto carina su come farlo. Probabilmente dovresti controllare la prima volta per eventuali domande di tracciamento, sarà più veloce di aspettare una risposta SO.

+2

attento. 'T' non sempre su' TRUE'. Meglio specificare 'labels = TRUE'. Inoltre, i risultati di ricerca di Google dipenderanno dalla tua cronologia delle ricerche. Per suggerimenti su come cercare [tag: r], consultare [how-to-search-for-r-materials] (http://stackoverflow.com/questions/102056/how-to-search-for-r- materiali) – Andrie

0

Spero che questo codice sarà lei aiuta :)

plot(x,y,xaxt = 'n') 

axis(side=1,at=c(1,20,30,50),labels=c("1975","1980","1985","1990"))