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 65588 fois
Licence - Pas d?Utilisation Commerciale - Partage dans les M?mes Conditions
Licence Creative Commons