Cet article décrit comment définir facilement les graduations des axes x et y. Nous vous expliquerons également comment pivoter le texte des axes en spécifiant un angle de rotation.
Dans ce tutoriel graphique R, vous apprendrez à:
- Modifier le style de police (taille, couleur et face) du texte des axes.
- Pivoter le texte des axes. Par exemple, pour un texte vertical sur l’axe des x, vous pouvez spécifier l’argument angle comme suit:
p + theme(axis.text.x = element_text(angle = 90))
. - Supprimer les graduations et les textes des axes:
p + theme(axis.text.x = element_blank(), axis.ticks = element_blank())
. - Supprimer les lignes du quadrillage et personnaliser le trait des axes.
- Personnalisation des graduations des axes pour les axes discrets et continus:
- Renommer manuellement le texte des graduations et changer l’ordre des éléments dans le graphique pour un axe des x à valeurs discrètes.
- Formater le texte d’un axe à valeurs continues en utilisant les transformations
percent
,dollar
etscientific
. - Modifier l’intervalle des graduations (ou breaks) des axes en spécifiant des valeurs personnalisées.
Sommaire:
Livre Apparenté
GGPLOT2 - L’Essentiel pour une Visualisation Magnifique des Données dans RFonctions clés de ggplot2
- Fonctions principales:
La fonction suivante sera utilisée pour modifier le thème et l’échelle de l’axe:
- theme(axis.text.x = element_text(), axis.text.y = element_text()). Modifier l’apparence du texte des axes.
- theme(axis.line = element_line()). Modifier le trait des axes
- scale_x_discrete() et scale_y_discrete(). Personnalisation des axes x et y discrets, respectivement.
- scale_x_continuous() et scale_y_continuous(). Personnalisation des axes x et y continus, respectivement.
Les fonctions scale prennent en entrée les arguments breaks
, labels
et limits
.
- Options clés du thème gggplot2 pour modifier le trait et le texte des axes:
theme(
# Modifier les traits des axes
axis.line = element_line(),
# Changer le texte des graduations des axes : couleur, taille et face de la police
axis.text = element_text(), # Changer les étiquettes des graduations pour tous les axes
axis.text.x = element_text(), # Modifier uniquement le texte des graduations de l'axe des x
axis.text.x.top = element_text(), # texte de l'axe des x du haut
axis.text.y = element_text(), # Changer uniquement le texte des graduations de l'axe des y
axis.text.y.right = element_text(),# texte des graduations de l'axe des y au niveau de l'axe du haut
# Changer le trait des graduations des axes : couleur, taille, type et longeur des traits
axis.ticks = element_line(), # Changer le trait de tous les axes
axis.ticks.x = element_line(), # Changer uniquement les graduations de l'axe des x
axis.ticks.y = element_line(), # Modifier uniquement les graduations de l'axe des y
axis.ticks.length = unit(3, "pt") # Modifier la longueur des graduations
)
Arguments des fonctions d’aide:
element_text(color, size, face, family, angle, hjust, vjust)
. Modifier l’apparence et l’angle de rotation des textes des axes.element_line(color, size, linetype)
. Modifier l’apparence des éléments de ligne.unit()
. Changer la longueur des graduations des axes. Exemple : unit(4, “pt”).
Pour supprimer le texte ou les graduations d’un axe particulier, utilisez element_blank()
pour l’argument de thème correspondant. Par exemple, pour supprimer toutes les graduations d’axe, utilisez ceci: p + theme(axis.ticks = element_blank())
.
Exemple de graphiques
Commencez par créer un box plot en utilisant l’ensemble de données ToothGrowth
:
library(ggplot2)
p <- ggplot(ToothGrowth, aes(x = factor(dose), y = len)) +
geom_boxplot()
p
Changer le texte des graduations des axes
Les fonctions theme()
et element_text()
sont utilisées pour définir la taille, la couleur et le style (face) de la police du texte des axes. Vous pouvez aussi spécifier l’argument angle
dans la fonction element_text()
pour pivoter le texte des graduations.
Modifier le style et l’angle d’orientation du texte des graduations des axes. Pour une rotation verticale du texte des axes x, utiliser angle = 90
.
# Rotation du texte des axes x et y de 45 degrés
# l'option `face` peut être "plain", "italic", "bold" ou "bold.italic"
p + theme(axis.text.x = element_text(face = "bold", color = "#993333",
size = 12, angle = 45),
axis.text.y = element_text(face = "bold", color = "blue",
size = 12, angle = 45))
# Rotation verticale du texte de l'axe des x
p + theme(axis.text.x = element_text(angle = 90))
Pour ajuster la position du texte des axes, vous pouvez spécifier l’argument hjust' et
vjust’, dont les valeurs doivent être comprises entre 0 et 1. Par exemple:
# Créer un nouveau box plot simple
p2 <- ggplot(iris, aes(Species, Sepal.Length)) +
geom_boxplot()
# Texte de l'axe des x en rotation mais non ajusté
p2 + theme(axis.text.x = element_text(angle = 45))
# Tourner et ajuster le texte de l'axe des x
p2 + theme(axis.text.x = element_text(angle = 45, hjust = 1))
Supprimer le texte des graduations des axes x et y
Fonction clé : element_blank()
# Supprimer le texte des graduations des axes x et y
p + theme(
axis.text.x = element_blank(),
axis.text.y = element_blank())
# Enlever les graduations et le texte des axes
p + theme(
axis.text.x = element_blank(),
axis.text.y = element_blank(),
axis.ticks = element_blank())
Modifier les traits des axes
- Fonction clé:
theme()
andelement_line()
- Valeurs autorisées pour les types de ligne : soit des caractères (“blank”, “solid”, “dashed”, “dotted”, “dotdash”, “longdash”, “twodash”) ou des nombres (0, 1, 2, 3, 4, 5, 6).
linetype = "solid"
est identique àlinetype = 1
.
Modifier la couleur, la taille et le type de traits des traits des axes:
p + theme(
axis.line = element_line(color = "darkblue",
size = 1, linetype = "solid")
)
Personnalisation des axes continus et discrets
L’axe x ou y peut être discret (variable de groupement) ou continu (variable numérique). Dans chacun de ces deux cas, les fonctions à utiliser pour le réglage des graduations des axes sont différentes.
Fonctions clés de ggplot2:
- Axes discrets:
- scale_x_discrete(name, breaks, labels, limits) : pour l’axe des x
- scale_y_discrete(name, breaks, labels, limits): pour l’axe y
- Axes continus:
- scale_x_continuous(name, breaks, labels, limits, trans): pour l’axe des x
- scale_y_continuous(name, breaks, labels, limits, trans): pour l’axe des x
Définition des arguments de fonction:
name
: textes de l’axe des x ou ybreaks
: vecteur spécifiant les graduations (breaks) à afficherlabels
: textes des graduations des axeslimits
: vecteur indiquant la plage de données
Les fonctions scale_xx()
permettent de modifier les paramètres suivants des axes x ou y :
- titres ou libellés des axes
- les limites des axes (plage de données à afficher)
- choisir l’endroit où les graduations apparaissent
- étiqueter manuellement les graduations
Axes discrets
Dans les exemples ci-dessous, nous utiliserons uniquement les fonctions scale_x_discrete()
et xlim()
pour personnaliser le texte des graduations de l’axe des x. Le même type d’exemples peut être appliqué à un axe y discret en utilisant les fonctions scale_y_discrete()
et ylim()
.
# Modifier l'étiquette de l'axe des x et l'ordre des éléments
p + scale_x_discrete(name ="Dose (mg)",
limits=c("2","1","0.5"))
# Renommer / Modifier les étiquettes des graduations
p + scale_x_discrete(breaks=c("0.5","1","2"),
labels=c("D0.5", "D1", "D2"))
# Choisissez les éléments à afficher
p + scale_x_discrete(limits=c("0.5", "2"))
# ou utilisez ceci:
# p + xlim("0.5", "2") # same as above
Axes continus
- Créer un diagramme de dispersion simple
- Modifier le texte et les limites des axes. Graduation de l’axe par une valeur définie par l’utilisateur.
# Diagramme de dispersion simple
sp <- ggplot(cars, aes(x = speed, y = dist)) + geom_point()
sp
# Modifier les textes et les limites des axes x et y
sp + scale_x_continuous(name="Speed of cars", limits=c(0, 30)) +
scale_y_continuous(name="Stopping distance", limits=c(0, 150))
- Changer l’intervalle des graduations:
# Graduation de l'axe y par une valeur spécifiée
# une graduation est montrée tous les 50
sp + scale_y_continuous(breaks=seq(0, 150, 50))
# Les graduations peuvent être espacées de façon aléatoire
sp + scale_y_continuous(breaks=c(0, 50, 65, 75, 150))
- Supprimer le texte des graduations ansi que les lignes de quadrillage
- Formater le texte des graduations des axes. Les valeurs possibles pour
labels
sontcomma
,percent
,dollar
etscientific
. Pour plus d’exemples, lisez la documentation de la fonction trans_new() dans le package Rscales
.
# Supprimer les graduations et la grille sur l'axe des y
sp + scale_y_continuous(breaks=NULL)
# Formater le texte de l'axe des y en pourcentage (%)
require(scales)
sp + scale_y_continuous(labels = percent)
Pour les formats dollar' et
scientific’, tapez ceci:
require(scales)
# Dollar
p + scale_y_continuous(labels = dollar)
# Scientifique
p + scale_y_continuous(labels = scientific)
Conclusion
- Créer un exemple de ggplot:
library(ggplot2)
p <- ggplot(iris, aes(Species, Sepal.Length)) +
geom_boxplot()
- Changer la police de caractères:
# Modifier le texte des graduations pour les axes x et y
p + theme(
axis.text = element_text(size = 11, color = "blue")
)
# Modifier le texte de l'axe des y uniquement
p + theme(axis.text.x = element_text(color = "blue", face = "italic"))
- Rotation du texte sur l’axe des x:
# Rotation verticale : 90 degrés
p + theme(
axis.text.x = element_text(angle = 90, hjust = 1, vjust = 0.5)
)
# Rotation de 45 degrés
p + theme(
axis.text.x = element_text(angle = 45, hjust = 1)
)
- Supprimer les graduations de l’axe des x et renommer les étiquettes des graduations:
p + theme(axis.ticks.x = element_blank())+
scale_x_discrete(
breaks=c("setosa","versicolor","virginica"),
labels=c("SE", "VE", "VI")
)
Version: English
No Comments