ggplot2 graduation des axes : Guide pour personnaliser les étiquettes des graduations - Logiciel R et visualisation de données


Le but de cet tutoriel est de décrire comment personnaliser les étiquettes des graduations des axes avec le logiciel R et le package ggplot2.

Préparer les données

Le jeu de données ToothGrowth est utilisé dans les exemples suivants :

# Convertir la colonne dose en facteur
ToothGrowth$dose <- as.factor(ToothGrowth$dose)
head(ToothGrowth)
##    len supp dose
## 1  4.2   VC  0.5
## 2 11.5   VC  0.5
## 3  7.3   VC  0.5
## 4  5.8   VC  0.5
## 5  6.4   VC  0.5
## 6 10.0   VC  0.5

Assurez-vous que la variable dose soit convertie en facteur en utilisant le script de R ci-dessus.

Exemple de graphiques

library(ggplot2)
p <- ggplot(ToothGrowth, aes(x=dose, y=len)) + geom_boxplot()
p

ggplot2 graduation des axes, étiquette des axes, programmation R

Changer l’apparence des étiquettes de graduations des axes

La couleur, la taille de la police et le style de police des étiquettes des graduations peuvent être changés en utilisant les fonctions theme() et element_text() comme suit:

# Etiquettes de graduations de l'axe x
p + theme(axis.text.x= element_text(family, face, colour, size))
# Etiquettes de graduations de l'axe y
p + theme(axis.text.y = element_text(family, face, colour, size))

Les arguments ci-dessous peuvent être utilisés pour la fonction element_text() pour modifier l’apparence du texte:


  • family : famille de police
  • face : type de police. Valeurs possibles “plain”, “italic”, “bold” et “bold.italic”
  • colour : couleur du texte
  • size : taille du texte en pts
  • angle: angle (entre [0, 360])
  • color : alias pour colour


# Changer l'apparence et l'angle d'orientation des étiquettes
p + theme(axis.text.x = element_text(face="bold", color="#993333", 
                           size=14, angle=45),
          axis.text.y = element_text(face="bold", color="#993333", 
                           size=14, angle=45))

ggplot2 graduation des axes, étiquette des axes, programmation R

Supprimer les étiquettes des graduations des axes x et y

Il est possible de masquer les graduations des axes et les étiquettes des graduations en utilisant la fonction element_blank() comme suit :

# Supprimer les étiquettes des graduations des axes x et y
p + theme(
  axis.text.x = element_blank(),
  axis.text.y = element_blank())
# Supprimer à la fois les graduations et les étiquettes
p + theme(
  axis.text.x = element_blank(),
  axis.text.y = element_blank(),
  axis.ticks = element_blank())

ggplot2 graduation des axes, étiquette des axes, programmation Rggplot2 graduation des axes, étiquette des axes, programmation R

Changer le trait des axes

Le type de traits des axes peut être changé en utilisant la fonction element_line() comme suit:

p + theme(axis.line = element_line(colour, size, linetype,
                                   lineend, color))

Les arguments de la fonction element_line() sont:


  • colour, color : couleur des traits
  • size : épaisseur des traits
  • linetype : Type de traits. Le type de traits peut être spécifié en utilisant soit du texte (“blank”, “solid”, “dashed”, “dotted”, “dotdash”, “longdash”, “twodash”) ou un nombre (0, 1, 2, 3, 4, 5, 6). Notez que linetype = “solid” est identique à linetype=1. Les types de traits disponibles dans R sont décrits ici: Types de traits dans R
  • lineend : terminaison du trait. Les valeurs possibles sont: “round”, “butt” ou “square”


# Changer le type et la couleur du trait des axes
p + theme( axis.line = element_line(colour = "darkblue", 
                      size = 1, linetype = "solid"))

ggplot2 graduation des axes, étiquette des axes, programmation R

Modifier les graduations des axes discrets et continus

Les axes x ou y peuvent être discrets ou continus. Dans chacune des configurations, les fonctions à utiliser, pour modifier les gradutions des axes, sont différentes.

Personnaliser un axe discret

Les fonctions scale_x_discrete() et scale_y_discrete() sont utilisées pour personnaliser les axes x et y discrets, respectivement.

Il est possible d’utiliser ces fonctions pour changer les paramètres, des axes x ou y, suivants:

  • titres des axes
  • limites des axes (échelle des axes)
  • la position des étiquettes des graduations
  • changement manuel des étiquettes des graduations

Les formats simplifiés de scale_x_discrete() et scale_y_discrete() sont:

scale_x_discrete(name, breaks, labels, limits)
scale_y_discrete(name, breaks, labels, limits)

  • name : Titre de l’axe des x ou y
  • breaks : contrôle la position des graduations (graduations des axes et grilles). Parmi les valeurs possibles, il y a:
    • NULL : Supprime toutes les graduations
    • waiver() : Valeur par défaut des graduations
    • un vecteur de type “character” ou “numeric” spécifiant les graduations à montrer
  • labels : Étiquettes des graduations des axes. Valeurs possibles:
    • NULL: pas d’étiquettes
    • waiver(): étiquettes par défaut
    • character vector: un vecteur de caractère à utiliser comme étiquettes
  • limits : Un vecteur de caractères spécifiant l’étiquette des graduations


Notez que, dans tous les exemples ci-dessous, nous allons utiliser seulement les fonctions scale_x_discrete() et xlim() pour personnaliser les étiquettes des graduations des axes x. Les mêmes types d’exemples peuvent être appliqués à un axe y de type discret en utilisant les fonctions scale_y_discrete() et ylim().

Changer l’ordre des groupes

L’argument limits est utilisé pour changer l’ordre des éléments:

# Graphique par défaut
p
# Changer l'ordre des groupes
# Changer le titre de l'axe des x
p + scale_x_discrete(name ="Dose (mg)", 
                    limits=c("2","1","0.5"))

ggplot2 graduation des axes, étiquette des axes, programmation Rggplot2 graduation des axes, étiquette des axes, programmation R

Changer les étiquettes des graduations

Les étiquettes de graduations peuvent être changées comme suit:

# Solution 1
p + scale_x_discrete(breaks=c("0.5","1","2"),
        labels=c("Dose 0.5", "Dose 1", "Dose 2"))
# Solution 2 : même graphique que la solution 1
p + scale_x_discrete(labels=c("0.5" = "Dose 0.5", "1" = "Dose 1",
                              "2" = "Dose 2"))

ggplot2 graduation des axes, étiquette des axes, programmation Rggplot2 graduation des axes, étiquette des axes, programmation R

Choisir les groupes à afficher

Le code R ci-dessous montre les box plots pour le premier élément (dose = 0.5) et le dernier élément (dose = 2) :

# Solution 1
p + scale_x_discrete(limits=c("0.5", "2"))
# Solution 2 : même graphique que la solution 1
p + xlim("0.5", "2")

ggplot2 graduation des axes, étiquette des axes, programmation Rggplot2 graduation des axes, étiquette des axes, programmation R

Personnaliser un axe continu

Les fonctions scale_x_continuous() et scale_y_continuous() sont utilisées pour personnaliser les axes x et y continus, respectivement.

Il est possible d’utiliser ces fonctions pour changer les paramètres, des axes x ou y, suivants:

  • titres des axes
  • limites des axes (changer le minimum et le maximum)
  • la position des étiquettes des graduations
  • changement manuel des étiquettes des graduations

Les formats simplifiés de scale_x_continuous() et scale_y_continuous() sont:

scale_x_continuous(name, breaks, labels, limits, trans)
scale_y_continuous(name, breaks, labels, limits, trans)

  • name : Titre de l’axe des x ou y
  • breaks : contrôle la position des graduations (graduations des axes et grilles). Parmi les valeurs possibles, il y a:
    • NULL : Supprime toutes les graduations
    • waiver() : Valeur par défaut des graduations
    • un vecteur de type character pou numeric spécifiant les graduations à montrer
  • labels : Étiquettes des graduations des axes. Valeurs possibles:
    • NULL: pas d’étiquettes
    • waiver(): étiquettes par défaut
    • character vector: un vecteur de caractère à utiliser comme étiquettes
  • limits : Un vecteur de caractères spécifiant les limites des axes x et y (min, max)
  • trans: transformations des axes. Valeurs possibles: “log2”, “log10”, “sqrt”, etc


Ces fonctions peuvent être utilisées comme suit:

# Nuage de points
sp<-ggplot(cars, aes(x = speed, y = dist)) + geom_point()
sp
# Changer le titre des axes x et y ainsi que les limits
sp + scale_x_continuous(name="Speed of cars", limits=c(0, 30)) +
  scale_y_continuous(name="Stopping distance", limits=c(0, 150))

ggplot2 graduation des axes, étiquette des axes, programmation Rggplot2 graduation des axes, étiquette des axes, programmation R

Changer la position des étiquettes des graduations

Le code R ci-dessous modifie la position des étiquettes de graduations sur l’axe des y du box plot. La fonction scale_y_continuous() et l’argument breaks sont utilisés:

# Changer les étiquettes des graduations (axe y)
# Graduation de 5 en 5
p + scale_y_continuous(breaks=seq(0,40,5))
# Graduations aléatoires
p + scale_y_continuous(breaks=c(5,7.5, 20, 25))
                     
# Suppression des graduations + grilles
p + scale_y_continuous(breaks=NULL)

ggplot2 graduation des axes, étiquette des axes, programmation Rggplot2 graduation des axes, étiquette des axes, programmation Rggplot2 graduation des axes, étiquette des axes, programmation R

Formater le texte des étiquettes de graduations

Les étiquettes de graduations peuvent être formatées en pourcentages, dollars, notation scientifiques, etc… Le package scales est nécessaire.

library(scales)
# Formatage en pourcentage
p + scale_y_continuous(labels = percent)
# Formatage en notation scientifique
p + scale_y_continuous(labels = scientific)

ggplot2 graduation des axes, étiquette des axes, programmation Rggplot2 graduation des axes, étiquette des axes, programmation R

Pour plus d’exemples sur le formatage des étiquettes des graduations, lire la documentation sur le package scales : ?scales::trans_new

Infos

Cette analyse a été réalisée avec le logiciel R (ver. 3.1.2) et le package ggplot2 (ver. 1.0.0)


Enjoyed this article? I’d be very grateful if you’d help it spread by emailing it to a friend, or sharing it on Twitter, Facebook or Linked In.

Show me some love with the like buttons below... Thank you and please don't forget to share and comment below!!
Avez vous aimé cet article? Je vous serais très reconnaissant si vous aidiez à sa diffusion en l'envoyant par courriel à un ami ou en le partageant sur Twitter, Facebook ou Linked In.

Montrez-moi un peu d'amour avec les like ci-dessous ... Merci et n'oubliez pas, s'il vous plaît, de partager et de commenter ci-dessous!






Cette page a été vue 33461 fois