Sostituisci l'asse X con i propri valori


95

Ho una domanda riguardante il comando plot ().

C'è un modo per eliminare completamente l'asse x e sostituirlo con i propri valori? So che posso sbarazzarmi dell'asse facendo

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

e quindi aggiungi un asse con

axis(side = 1 etc.)

Tuttavia, quando aggiungo l'asse, ovviamente si riferisce ancora ai dati tracciati come "x". Vorrei solo tracciare i valori "y" e aggiungere il mio asse x nel senso di "disegnare" semplicemente l'asse x con i propri valori specificati. C'è un modo per farlo?

Lo sfondo di questa domanda è che i miei due frame di dati differiscono nella loro lunghezza e quindi non posso tracciarli.


Vuoi tracciare vettori con lunghezze diverse o vuoi semplicemente impostare l'etichetta x da solo? Potreste fornire un esempio o fornire maggiori informazioni sul set di dati?
Manoel Galdino

Potresti anche voler vedere come combinare due frame di dati insieme. Potresti essere in grado di creare più grafici dai tuoi dati e probabilmente rendere i dati più informativi.
Sam



Risposte:


176

Non sono sicuro che sia quello che intendi, ma puoi farlo:

plot(1:10, xaxt = "n", xlab='Some Letters')
axis(1, at=1:10, labels=letters[1:10])

che poi ti dà il grafico:

inserisci qui la descrizione dell'immagine


Grazie Tim! Non esattamente quello che stavo cercando, ma mi ha aiutato a fare quello che volevo =)
Dani

5
xey hanno la stessa lunghezza in questo caso. come si disegnano n etichette quando la lunghezza dell'altro asse è m?
Colbert Sesanker

2
solo per riferimento: l' xaxt="n"opzione nel plotcomando sopprime l'etichettatura dell'asse x. Se questa opzione non è inclusa, axissarà un NOOP.
Steen

Funziona, ma come faccio a ruotarlo in modo che sia verticale? las = 2 non funziona.
runningbirds

Ho provato la soluzione. xaxt = "n"opzione ha funzionato per le serie temporali di classe ts. Tuttavia, nel caso di più serie temporali (classe mts) non ha funzionato.
Erdogan CEVHER

14

Puoi anche impostare labels = FALSEall'interno axis(...)e stampare le etichette in un comando separato con Testo. Con questa opzione puoi ruotare il testo del testo nel caso ne avessi bisogno

lablist<-as.vector(c(1:10))
axis(1, at=seq(1, 10, by=1), labels = FALSE)
text(seq(1, 10, by=1), par("usr")[3] - 0.2, labels = lablist, srt = 45, pos = 1, xpd = TRUE)

Spiegazione dettagliata qui

Immagine con etichette ruotate


Il collegamento a detailed explanationè morto
javadba
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.