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.