GGPLOT Graduations des Axes: Définir et Pivoter les Textes



GGPLOT Graduations des Axes: Définir et Pivoter les Textes

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 et scientific.
    • 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 R

Fonctions 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' etvjust’, 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() and element_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 y
  • breaks: vecteur spécifiant les graduations (breaks) à afficher
  • labels: textes des graduations des axes
  • limits: 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 sont comma, percent, dollar et scientific. Pour plus d’exemples, lisez la documentation de la fonction trans_new() dans le package R scales.
# 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' etscientific’, 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

Give a comment

Want to post an issue with R? If yes, please make sure you have read this: How to Include Reproducible R Script Examples in Datanovia Comments