2010-09-23 34 views

Respuesta

51

ucfagls es el adecuado, proporcionando utiliza el comando plot(). Si no, por favor danos más detalles.

En cualquier caso, se puede controlar cada eje por separado utilizando el comando axis() y las opciones xaxt/yaxt en plot(). Utilizando los datos de ucfagls, esto se convierte en:

plot(Y ~ X, data=foo,yaxt="n") 
axis(2,cex.axis=2) 

la opción yaxt = "n" es necesaria para evitar que las parcelas de terreno de comando del eje y sin cambiar. Para el eje x, esto funciona exactamente de la misma:

plot(Y ~ X, data=foo,xaxt="n") 
axis(1,cex.axis=2) 

Ver también los archivos de ayuda par y eje


Editar:?? Como lo es para un barplot, mira el CeX opciones .axis y cex.nombres:

tN <- table(sample(letters[1:5],100,replace=T,p=c(0.2,0.1,0.3,0.2,0.2))) 

op <- par(mfrow=c(1,2)) 
barplot(tN, col=rainbow(5),cex.axis=0.5) # for the Y-axis 
barplot(tN, col=rainbow(5),cex.names=0.5) # for the X-axis 
par(op) 

alt text

+0

Hola, disculpe por ser inexperto (de nuevo). En realidad, estoy ejecutando una barra con el eje X numérico pero con cadenas para las etiquetas del eje y. Supongo que el eje cex.a en barra de barras no puede manejar el texto ya que en la ayuda para el par dice "cex.axis = factor de expansión para etiquetas de eje numérico". Supongo que tengo que usar su enfoque con el comando de eje adicional para modificar mi eje y. Muchas gracias – Jens

+0

@Jens; Si el uso de las llamadas 'barplot()' separate 'axis()' no funcionará porque las etiquetas de la barra no son un "eje". Para usar 'axis()', necesitaría tener los puntos medios de la barra (éstos son devueltos por 'barplot()'). Usar una llamada 'text()' con recorte desactivado también puede ser una forma de hacer un "eje" personalizado para una barra de representación. –

+0

@ucfagls En mi sistema, eso realmente funciona para el eje Y. Para el eje X da un resultado incorrecto. Adapte mi respuesta para la barra de barras. –

7

No sabe lo que está haciendo (de gran ayuda para mostrar lo que ha intentado que no funcionaba), pero su afirmación de que cex.axis sólo afecta al eje x no es cierto:

set.seed(123) 
foo <- data.frame(X = rnorm(10), Y = rnorm(10)) 
plot(Y ~ X, data = foo, cex.axis = 3) 

al menos para mí con:

> sessionInfo() 
R version 2.11.1 Patched (2010-08-17 r52767) 
Platform: x86_64-unknown-linux-gnu (64-bit) 

locale: 
[1] LC_CTYPE=en_GB.UTF-8  LC_NUMERIC=C    
[3] LC_TIME=en_GB.UTF-8  LC_COLLATE=en_GB.UTF-8  
[5] LC_MONETARY=C    LC_MESSAGES=en_GB.UTF-8 
[7] LC_PAPER=en_GB.UTF-8  LC_NAME=C     
[9] LC_ADDRESS=C    LC_TELEPHONE=C    
[11] LC_MEASUREMENT=en_GB.UTF-8 LC_IDENTIFICATION=C  

attached base packages: 
[1] grid  stats  graphics grDevices utils  datasets methods 
[8] base  

other attached packages: 
[1] ggplot2_0.8.8 proto_0.3-8 reshape_0.8.3 plyr_1.2.1 

loaded via a namespace (and not attached): 
[1] digest_0.4.2 tools_2.11.1 

Además, cex.axis afecta al etiquetado de las marcas de graduación. cex.lab se usa para controlar lo que R llama las etiquetas de eje.

plot(Y ~ X, data = foo, cex.lab = 3) 

pero incluso eso funciona para los ejes xey.


seguimiento comentario Jens' sobre el uso de barplot(). Echa un vistazo a la discusión cex.names a barplot(), lo que le permite controlar las etiquetas de barras:

dat < - rpois (10, 3) nombres (DAT) < - LETRAS [1:10] barplot (dat, CeX. nombres = 3, cex.axis = 2)

como usted menciona que cex.axis solamente estaba afectando el eje x supongo que tenías horiz = TRUE en su llamada barplot() así? Como las etiquetas de barras no están dibujados con un axis() llamada, la aplicación de Joris respuesta (por lo demás muy útil) con axis() llamadas individuales no ayudará en esta situación con usted utilizando barplot()

HTH

13

Como el título sugiere que queremos ajustar el tamaño de las etiquetas y no las marcas de graduación que pensé que en realidad podría añadir algo a la pregunta, es necesario utilizar el mtext() si desea especificar uno de los tamaños de etiqueta, o simplemente puede usar par(cex.lab=2) como una alternativa simple. He aquí un texto de líneas múltiples() ejemplo más avanzado:

set.seed(123) 
foo <- data.frame(X = rnorm(10), Y = rnorm(10)) 
plot(Y ~ X, data=foo, 
    yaxt="n", ylab="", 
    xlab="Regular boring x", 
    pch=16, 
    col="darkblue") 
axis(2,cex.axis=1.2) 
mtext("Awesome Y variable", side=2, line=2.2, cex=2) 

enter image description here

Es posible que tenga que ajustar la opción line= para conseguir el posicionamiento óptimo del texto, pero aparte de que es muy fácil de usar.

Cuestiones relacionadas