Reemplazar el eje X con valores propios

95

Tengo una pregunta sobre el comando plot ().

¿Hay alguna manera de eliminar completamente el eje x y reemplazarlo con valores propios? Sé que puedo deshacerme del eje haciendo

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

y luego agregue un eje con

axis(side = 1 etc.)

Sin embargo, cuando agrego el eje, obviamente todavía se refiere a los datos trazados como 'x'. Solo me gustaría trazar los valores 'y' y agregar el eje x el mío en el sentido de simplemente "dibujar" el eje x con valores propios especificados. ¿Hay alguna manera de hacerlo?

El trasfondo de esta pregunta es que mis dos marcos de datos difieren en su longitud y, por lo tanto, no puedo trazarlos.

Dani
fuente
¿Quiere trazar vectores con diferentes longitudes o simplemente quiere establecer la etiqueta x usted mismo? ¿Podría dar un ejemplo o dar más información sobre el conjunto de datos?
Manoel Galdino
Es posible que también desee ver cómo combinar dos marcos de datos. Es posible que pueda hacer más gráficos a partir de sus datos y probablemente hacer que los datos sean más informativos.
Sam
2
posible duplicado de R: ¿Cómo configuro con qué plot () etiqueta el eje x?
Blue Magister

Respuestas:

176

No estoy seguro de si es a lo que te refieres, pero puedes hacer esto:

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

que luego te da el gráfico:

ingrese la descripción de la imagen aquí

tim_yates
fuente
¡Gracias Tim! No es exactamente lo que estaba buscando, pero me ayudó a hacer lo que quería =)
Dani
5
xey tienen la misma longitud en este caso. ¿Cómo se dibujan n etiquetas cuando la longitud del otro eje es m?
Colbert Sesanker
2
solo como referencia: la xaxt="n"opción en el plotcomando suprime el etiquetado del eje x. Si no se incluye esta opción, axisserá un NOOP.
Steen
Esto funciona, pero ¿cómo lo giro para que quede vertical? las = 2 no funciona.
Runningbirds
Probé la solución. xaxt = "n"La opción funcionó para las series temporales de la clase ts. Pero, en el caso de múltiples series de tiempo (clase mts) no funcionó.
Erdogan CEVHER
14

También podría colocar el labels = FALSEinterior axis(...)e imprimir las etiquetas en un comando separado con Texto. Con esta opción puedes rotar el texto el texto en caso de que lo necesites

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)

Explicación detallada aquí

Imagen con etiquetas giradas

usuario9869932
fuente
El enlace a detailed explanationestá muerto
javadba