Cómo especificar los valores reales del eje x para trazar como ticks del eje x en R

Estoy creando una ttwig en R y no me gustan los valores del eje x trazados por R.

Por ejemplo:

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

Esto traza un gráfico con los siguientes valores en el eje X:

50, 100, 150, 200

Sin embargo, quiero trazar los 20 valores 10,20, 30 ... 200 almacenados en la variable x, como los valores del eje X. Revisé innumerables blogs y el breve manual: después de horas de búsqueda, lo más cercano que he encontrado para encontrar algo útil son las siguientes (resumidas) instrucciones:

  1. call plot() o par() , especificando el argumento xaxt='n'
  2. axis() llamada axis() axis(side = 1, at = seq(0, 10, by = 0.1), labels = FALSE, tcl = -0.2) eg axis(side = 1, at = seq(0, 10, by = 0.1), labels = FALSE, tcl = -0.2)

Lo intenté y la ttwig resultante no tenía ningún valor de eje x. ¿Es posible que alguien sepa cómo hacerlo? No puedo creer que nadie haya intentado hacer esto antes.

Encontrará la respuesta a su pregunta en la página de ayuda para el ?axis

Aquí hay uno de los ejemplos de la página de ayuda, modificado con sus datos:

Opción 1: use xaxp para definir las tags de los ejes

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

Opción 2: Use at y seq() para definir las tags:

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

Ambas opciones producen el mismo gráfico:

enter image description here


PD. Como tiene una gran cantidad de tags, deberá usar argumentos adicionales para que el texto encaje en la ttwig. Yo uso las para rotar las tags.

Eche un vistazo más de cerca a la documentación del ?axis Si miras la descripción del argumento de las labels , verás que es:

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

Entonces, simplemente cámbialo a verdadero, y obtendrás tus tags de tic.

 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) 

Tenga cuidado de que si no estira el ancho de su ventana, entonces R no pueda escribir todas sus tags. Juegue con el ancho de la ventana y verá a qué me refiero.


¡Es una lástima que haya tenido tantos problemas para encontrar documentación! ¿Cuáles fueron tus términos de búsqueda? Intente escribir r axis en Google, y el primer enlace que obtendrá es esa página Quick R que mencioné anteriormente . Desplácese hacia abajo hasta "Ejes" y obtendrá una pequeña guía muy agradable sobre cómo hacerlo. Probablemente deberías comprobar primero si hay alguna pregunta de trazado, será más rápido que esperar una respuesta SO.

Espero que esta encoding te ayude 🙂

 plot(x,y,xaxt = 'n') axis(side=1,at=c(1,20,30,50),labels=c("1975","1980","1985","1990")) 

En el caso de trazar series de tiempo, el comando ts.plot requiere un argumento diferente que xaxt="n"

 require(graphics) ts.plot(ldeaths, mdeaths, xlab="year", ylab="deaths", lty=c(1:2), gpars=list(xaxt="n")) axis(1, at = seq(1974, 1980, by = 2))