varias superponer personalizar modificar los graficos grafico graficas ggplot escala ejes dispersion como cambiar r plot

personalizar - superponer graficas en r ggplot



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

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 etiquetas 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 etiquetas. 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.

Estoy creando una trama 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 trama 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.


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))


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 etiquetas 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 etiquetas:

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

Ambas opciones producen el mismo gráfico:

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


Espero que esta codificación te ayude :)

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