personalizar - modificar ejes en r
Posicionamiento de etiquetas de ejes (1)
Ejes de ploteo en los lados derecho y superior de un diagrama
De forma predeterminada, R trazará el eje x debajo del área de trazado y el eje y a la izquierda del mismo. Puede cambiar este comportamiento de esta manera:
plot(1:100, cumsum(rnorm(100)), type="l", axes=FALSE) # Do not plot any axes
axis(3) # Draw the x-axis above the plot area
axis(4) # Draw the y-axis to the right of the plot area
box()
Para mover también las etiquetas, establezca ann=FALSE
o xlab="", ylab=""
y agréguelas después con mtext
, donde side=1
está abajo, 2 queda, 3 arriba, 4 es derecha. line
controla la distancia desde el área de trazado.
plot(1:100, cumsum(rnorm(100)), type="l", axes=FALSE, ann=FALSE)
axis(3)
box()
mtext("Top axis", side=3, line=3)
Cambiar la distancia entre etiquetas, marcas y área de trazado.
Use el parámetro mgp
para controlar estos detalles, ya sea antes de la llamada para plot
, como este
par(mgp=c(axis.title.position, axis.label.position, axis.line.position))
o en el comando de la plot
sí, como este
plot(1:100, cumsum(rnorm(100)), type="l", mgp=c(2,1,.5), las=1)
También tenga en cuenta el parámetro las
que hace que todas las etiquetas tic sean horisontal, lo que las hace más fáciles de leer.
¿Cómo puedo mover la etiqueta del eje y desde la izquierda a la derecha del área de trazado y la etiqueta del eje x desde abajo hasta arriba del área de trazado en el siguiente gráfico? Gracias
xleft<-c(1,2,2.5)
xright<-c(2,2.5,2.75)
ybottom<-c(1,2,2.5)
ytop<-c(2,2.5,2.75)
par(mar = c(15,15,2.75,2.75) + 0.1)
plot(c(1,3),c(1,3),type="n",main="title",xlab="xlab-move me above plot",ylab="ylab-move me right of plot",axes=F,asp=1)
axis(1,pos=1)
axis(2,pos=1)
rect(xleft,ybottom,xright,ytop,col=c("blue","red","green"))
#Label position along axes
x.label.position<-(xleft+xright)/2
y.label.position<-(ybottom+ytop)/2
#Labels
x.label<-c("Long species Name1","Long species Name2","Long species Name3")
y.label<-c("Long species Name4","Long species Name5","Long species Name5")
text(par()$usr[1]-0.5,y.label.position,y.label,xpd=TRUE,adj=1)
text(y=par()$usr[3]-0.5,x=x.label.position,x.label,xpd=TRUE,adj=1,srt=90)
par(xpd=TRUE)
legend(-0.1,0,legend=c("Species A","Species B","Species C"),fill=c("blue", "red", "green"))