2011-01-04 25 views
9

¿Cómo se extiende la línea del eje en R para cubrir la extensión de sus datos? Por ejemplo, en¿Extender la longitud de un eje de trazado en R?

http://i.stack.imgur.com/xUvp3.png

mis datos se almacenen alrededor de 2100 y me gustaría que la línea para el eje x para ir tan lejos, pero no hace una tickmark o etiqueta en 2100. Es esto posible en I ?

Aquí es el código utilizado para hacer el gráfico de arriba:

hist(x,breaks=50,xlab="...",main="",xlim=c(0,2100)) 

Gracias.

Respuesta

8

Debe usar dos comandos del eje; uno para la línea del eje y otro para los ticks y las etiquetas.

set.seed(2); x <- rlnorm(1000, log(130)) 
hist(x, breaks=seq(0, 3000, by=200), xlim=c(0,2100), xaxt="n") 

axis(1, at=c(0,2100), labels=c("",""), lwd.ticks=0) 
axis(1, at=seq(0 , 2000, by=200), lwd=0, lwd.ticks=1) 

alt text

+0

gracias! eso hace el truco No puedo creer que no haya pensado en eso. – spadequack

3

Como la famosa cita

R> fortunes::fortune("yoda") 

Evelyn Hall: I would like to know how (if) I can extract some of 
the information from the summary of my nlme. 
Simon Blomberg: This is R. There is no if. Only how. 
    -- Evelyn Hall and Simon 'Yoda' Blomberg 
     R-help (April 2005) 
R> 

dice "No hay si. Sólo la forma.".

Se puede establecer cualquier etiquetas de los ejes por los que desea

  • supresión de las etiquetas de los ejes por defecto y
  • ajuste de las etiquetas de los ejes que desee.

de inicio con help(axis)

+0

Miré en eje y tiene un poco más cerca http://imgur.com/g0f1Q con par (usr = c (0, max (x), 0,1200)) hist (x, breaks = 50, xlab = "...", main = "", xlim = c (0,2100), xaxt = "n") axis (1, at = seq (0,2500,500)), labels = seq (0,2500,500)) pero ahora hay más de la línea del eje que me gustaría, aunque digo recortarla en max (x) que es 2074. Después de trazar, par ("usr") [2] da 2184. – spadequack

3

Con hist() se puede controlar la ubicación de las garrapatas y las etiquetas con eje:

hist(rlnorm(1000, log(130)), breaks=seq(0, 3000, by=200), xlim=c(0,2100) , axes=FALSE) 
axis(1, at=seq(0 , 2000, by=200) 

Si quería ver cada 200 intervalo de etiquetado se puede rotar la etiquetas con el argumento las:

axis(1, at=seq(0 , 2000, by=200) , las=2) 
Cuestiones relacionadas