2010-08-06 31 views
32

Por lo general, cuando trazo un gráfico de líneas R y establezco ylim=c(0,some_value), hay un espacio pequeño entre el eje xy y = 0.Establecer R traza x eje para mostrar en y = 0

Me gustaría que el eje y se muestre exactamente en y = 0, por lo que los puntos (x, 0) se trazarán en el eje y (y no arriba).

Respuesta

39

Probablemente quieren que los parámetros gráficos xaxs y yaxs con estilo "i":

plot(1:10, rnorm(10), ylim=c(0,10), yaxs="i") 

Ver ?par:

xaxs: El estilo de intervalo eje cálculo que se utilizará para el eje x Los valores posibles son "r", "i", "e", "s", "d". Los estilos generalmente son controlados por el rango de datos o xlim, si se proporcionan. El estilo "r" (normal) primero extiende el rango de datos por 4 por ciento en cada extremo y luego encuentra un eje con etiquetas bonitas que se ajustan a dentro del rango extendido. El estilo "i" (interno) solo encuentra un eje con etiquetas bonitas que se ajusta dentro del rango de datos originales . El estilo "s" (estándar) encuentra un eje con etiquetas bonitas dentro de las cuales se ajusta la gama de datos originales . El estilo "e" (extendido) es como estilo "s", excepto que también es asegura que hay espacio para símbolos de trazado dentro del cuadro delimitador . El estilo "d" (directo) especifica que el eje actual se debe usar en los diagramas siguientes . (Sólo "r" y "i" estilos se implementan actualmente)

yaxs: El estilo de cálculo del intervalo de eje que se utiliza para el eje y. Ver xaxs arriba.

+0

+1 bingo! gracias. –

+0

Tenga en cuenta que, cite: "Solo se han implementado estilos" r "e" i "en R." Supongo que esto significa que "e", "s" y "d" están disponibles solo en S (¿qué más podría significar?) De todos modos, desafortunadamente, estos otros no están disponibles en R. – PatrickT

9

Otra opción es desactivar el trazado eje en la parcela usando axes=F y luego poner los ejes en el uso por separado el control de ejes, con la opción pos controlar la separación eje.

plot(1:10, runif(10), ylim=c(0,1), xlim=c(0,10),axes=F) 
    axis(1, pos=0) 
    axis(2, pos=0) 
Cuestiones relacionadas