web-dev-qa-db-fra.com

Étiquettes des axes de positionnement

Comment déplacer l'étiquette de l'axe y de gauche à droite de la zone de traçage et l'étiquette de l'axe x de bas en haut au-dessus de la zone de traçage dans le graphique suivant? Merci

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

enter image description here

28
Elizabeth

Tracer des axes sur les côtés droit et supérieur d'un tracé

Par défaut, R tracera l'axe des x sous la zone de traçage et l'axe des y à gauche. Vous pouvez modifier ce comportement de cette manière:

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

enter image description here

Pour déplacer également les étiquettes que vous définissez ann=FALSE ou xlab="", ylab="" et ajoutez-les ensuite avec mtext, où side=1 est en bas, 2 à gauche, 3 en haut, 4 à droite. line contrôle la distance de la zone de traçage.

plot(1:100, cumsum(rnorm(100)), type="l", axes=FALSE, ann=FALSE)
axis(3)
box()
mtext("Top axis", side=3, line=3)

enter image description here

Modification de la distance entre les étiquettes, les graduations et la zone de traçage.

Utilisez le paramètre mgp pour contrôler ces détails, soit avant l'appel à plot, comme ceci

par(mgp=c(axis.title.position, axis.label.position, axis.line.position))

ou dans la commande plot elle-même, comme ceci

plot(1:100, cumsum(rnorm(100)), type="l", mgp=c(2,1,.5), las=1)

enter image description here

Notez également le paramètre las qui transforme toutes les étiquettes de graduation horizontalement, ce qui les rend plus faciles à lire.

61
Backlin