Axes et étiquettes dans R
De nombreuses fonctions de traçage de haut niveau (plot, hist, boxplot, etc.) vous permettent d'inclure des options d'axe et de texte (ainsi que d'autres paramètres graphiques). Par exemple :
# Specify axis options within plot()
plot(x, y, main="title", sub="subtitle",
xlab="X-axis label", ylab="y-axix label",
xlim=c(xmin, xmax), ylim=c(ymin, ymax))
Pour un contrôle plus fin ou pour la modularisation, vous pouvez utiliser les fonctions décrites ci-dessous.
Titres
Utilisez la fonction title( )
pour ajouter des étiquettes à un graphique.
title(main="main title", sub="sub-title",
xlab="x-axis label", ylab="y-axis label")
De nombreux autres paramètres graphiques (tels que la taille du texte, la police, la rotation et la couleur) peuvent également être spécifiés dans la fonction title( )
.
# Add a red title and a blue subtitle. Make x and y
# labels 25% smaller than the default and green.
title(main="My Title", col.main="red",
sub="My Sub-title", col.sub="blue",
xlab="My X label", ylab="My Y label",
col.lab="green", cex.lab=0.75)
Annotations de texte
Du texte peut être ajouté aux graphiques à l'aide des fonctions text( )
et mtext( )
. text( )
place le texte à l'intérieur du graphique tandis que mtext( )
place le texte dans l'une des quatre marges.
text(location, "text to place", pos, ...)
mtext("text to place", side, line=n, ...)
Les options les plus courantes sont décrites ci-dessous.
option | description |
location | peut être une coordonnée x,y. Le texte peut également être placé de manière interactive à l'aide de la souris en spécifiant location comme locator(1). |
pos | la position par rapport à l'emplacement. 1=en bas, 2=à gauche, 3=en haut, 4=à droite. Si vous spécifiez pos , vous pouvez spécifier offset= en pourcentage de la largeur du caractère. |
côté | la marge dans laquelle placer le texte. 1=bas, 2=gauche, 3=haut, 4=droite. vous pouvez spécifier line= pour indiquer la ligne dans la marge en commençant par 0 et en allant vers l'extérieur. vous pouvez également spécifier adj=0 pour l'alignement gauche/bas ou adj=1 pour l'alignement haut/droit. |
Les autres options courantes sont cex
, col
, et font
(respectivement pour la taille, la couleur et le style de police).
Points d'étiquetage
Vous pouvez utiliser la fonction text( )
(voir ci-dessus) pour étiqueter les points ainsi que pour ajouter d'autres annotations textuelles. Spécifiez l'emplacement sous la forme d'un ensemble de coordonnées x, y et spécifiez le texte à placer sous la forme d'un vecteur d'étiquettes. Les vecteurs x, y et étiquette doivent tous avoir la même longueur.
# Example of labeling points
attach(mtcars)
plot(wt, mpg, main="Milage vs. Car Weight",
xlab="Weight", ylab="Mileage", pch=18, col="blue")
text(wt, mpg, row.names(mtcars), cex=0.6, pos=4, col="red")
Annotations mathématiques
Vous pouvez ajouter des formules mathématiques à un graphique en utilisant des règles de type TEX. Voir help(plotmath)
pour plus de détails et d'exemples.
Axes
Vous pouvez créer des axes personnalisés à l'aide de la fonction axis( )
.
axis(side, at=, labels=, pos=, lty=, col=, las=, tck=, ...)
où
option | description |
côté | un nombre entier indiquant le côté du graphique sur lequel l'axe doit être dessiné (1=bas, 2=gauche, 3=haut, 4=droite) |
at | un vecteur numérique indiquant l'endroit où les marques de tic doivent être dessinées |
étiquettes | un vecteur de caractères pour les étiquettes à placer sur les points de repère (si NULL, les valeurs at seront utilisées) |
pos | la coordonnée à laquelle la ligne d'axe doit être tracée. (c'est-à-dire la valeur sur l'autre axe à l'endroit où il se croise) |
lty | type de ligne |
col | la couleur de la ligne et de la marque de coche |
las | les étiquettes sont parallèles (=0) ou perpendiculaires (=2) à l'axe |
tck | longueur de la marque en fraction de la région de traçage (le nombre négatif est à l'extérieur du graphique, le nombre positif est à l'intérieur, 0 supprime les marques, 1 crée des lignes de quadrillage) ; la valeur par défaut est -0.01 |
(...) | autres paramètres graphiques |
Si vous allez créer un axe personnalisé, vous devez supprimer l'axe généré automatiquement par votre fonction de traçage de haut niveau. L'option axes=FALSE
supprime les axes x et y. xaxt="n"
et yaxt="n"
suppriment respectivement les axes x et y. Voici un exemple (quelque peu exagéré).
# A Silly Axis Example
# specify the data
x <- c(1:10); y <- x; z <- 10/x
# create extra margin room on the right for an axis
par(mar=c(5, 4, 4, 8) + 0.1)
# plot x vs. y
plot(x, y,type="b", pch=21, col="red",
yaxt="n", lty=3, xlab="", ylab="")
# add x vs. 1/x
lines(x, z, type="b", pch=22, col="blue", lty=2)
# draw an axis on the left
axis(2, at=x,labels=x, col.axis="red", las=2)
# draw an axis on the right, with smaller text and ticks
axis(4, at=z,labels=round(z,digits=2),
col.axis="blue", las=2, cex.axis=0.7, tck=-.01)
# add a title for the right axis
mtext("y=1/x", side=4, line=3, cex.lab=1,las=2, col="blue")
# add a main title and bottom and left axis labels
title("An Example of Creative Axes", xlab="X values",
ylab="Y=X")
Marques mineures de coche
La fonction minor.tick( )
du paquet Hmisc ajoute des points de repère mineurs.
# Add minor tick marks
library(Hmisc)
minor.tick(nx=n, ny=n, tick.ratio=n)
nx
est le nombre de marques mineures à placer entre les marques majeures de l'axe des x. ny
fait de même pour l'axe des y. tick.ratio
est la taille de la marque mineure par rapport à la marque majeure. La longueur de la marque de tic-tac principale est extraite de par("tck")
.
Lignes de référence
Ajoutez des lignes de référence à un graphique à l'aide de la fonction abline( )
.
abline(h=yvalues, v=xvalues)
D'autres paramètres graphiques (tels que le type de ligne, la couleur et la largeur) peuvent également être spécifiés dans la fonction abline( )
.
# add solid horizontal lines at y=1,5,7
abline(h=c(1,5,7))
# add dashed blue verical lines at x = 1,3,5,7,9
abline(v=seq(1,10,2),lty=2,col="blue")
Note : Vous pouvez également utiliser la fonction grid( )
pour ajouter des lignes de référence.
Légende
Ajoutez une légende à l'aide de la fonction legend()
.
legend(location, title, legend, ...)
Common options are described below.
option | description |
location | Il existe plusieurs façons d'indiquer l'emplacement de la légende. Vous pouvez indiquer une coordonnée x,y pour le coin supérieur gauche de la légende. Vous pouvez utiliser locator(1), auquel cas vous utilisez la souris pour indiquer l'emplacement de la légende. Vous pouvez également utiliser les mots-clés "bottom", "bottomleft", "left", "topleft", "top", "topright", "right", "right", "bottomright" ou "center". Si vous utilisez un mot-clé, vous pouvez utiliser inset= pour spécifier le déplacement de la légende dans le graphique (en tant que fraction de la zone de tracé). |
title | Chaîne de caractères pour le titre de la légende (facultatif) |
légende | Un vecteur de caractères avec les étiquettes |
... | Autres options. Si la légende comporte des lignes colorées, spécifiez col= et un vecteur de couleurs. Si la légende comporte des symboles ponctuels, spécifiez pch= et un vecteur de symboles ponctuels. Si la légende indique la largeur ou le style des lignes, utilisez lwd= ou lty= et un vecteur de largeurs ou de styles. Pour créer des cases colorées pour la légende (ce qui est courant dans les diagrammes à barres, les diagrammes en boîte ou les diagrammes circulaires), utilisez fill= et un vecteur de couleurs. |
Parmi les autres options de légende courantes, citons bty
pour le type de boîte, bg
pour la couleur d'arrière-plan, cex
pour la taille et text.col
pour la couleur du texte. Le paramètre horiz=TRUE
permet de définir la légende horizontalement plutôt que verticalement.
# Legend Example
attach(mtcars)
boxplot(mpg~cyl, main="Milage by Car Weight",
yaxt="n", xlab="Milage", horizontal=TRUE,
col=terrain.colors(3))
legend("topright", inset=.05, title="Number of Cylinders",
c("4","6","8"), fill=terrain.colors(3), horiz=TRUE)
Pour plus d'informations sur les légendes, voir help(legend)
. Les exemples de l'aide sont particulièrement instructifs.
Pratiquer
Essayez gratuitement le premier chapitre de ce cours en ligne sur la visualisation de données en R.
Ce contenu est extrait de statmethods.net.