ggplot2 légende : Modifier facilement la légende d'un graphique - Logiciel R et visualisation de données


L?objectif de cet tutoriel R est de d?crire comment changer la l?gende d?un graphique g?n?r? avec le package ggplot2.

Donn?es

Le jeu de donn?es ToothGrowth est utilis? dans les exemples ci-dessous :

# Convertir la variable dose du type "numeric" au type "factor""
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 est convertie en une variable de type ?factor? en utilisant le script de R ci-dessus.

Exemple de graphes

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

ggplot2 l?gende - graphique et logiciel R

Changer la position d?une l?gende

La position de la l?gende peut ?tre chang?e en utilisant la fonction theme() comme suit :

p + theme(legend.position="top")
p + theme(legend.position="bottom")

ggplot2 l?gende - graphique et logiciel Rggplot2 l?gende - graphique et logiciel R

Les valeurs possibles pour l?argument legend.position sont : ?left?,?top?, ?right?, ?bottom?.

Notez que, l?argument legend.position peut ?tre aussi un vecteur num?rique c(x, y). Dans ce cas, il est possible de positionner la l?gende ? l?int?rieur de la zone graphique. x et y sont les coordonn?es de la bo?te de l?gende. Leurs valeurs doivent ?tre entre 0 et 1. c(0,0) correspond ? la position ?bas-gauche? et c(1,1) correspond ? la position ?haut-droite?.

p + theme(legend.position = c(0.8, 0.2))

ggplot2 l?gende - graphique et logiciel R

Changer le titre de la l?gende et le style de police du texte

# Titre de la l?gende
p + theme(legend.title = element_text(colour="blue", size=10, 
                                      face="bold"))
# Textes de la l?gende
p + theme(legend.text = element_text(colour="blue", size=10, 
                                     face="bold"))

ggplot2 l?gende - graphique et logiciel Rggplot2 l?gende - graphique et logiciel R

Changer la couleur de fond de la l?gende

# Couleur de fond de la l?gende
p + theme(legend.background = element_rect(fill="lightblue", 
                                  size=0.5, linetype="solid"))
p + theme(legend.background = element_rect(fill="lightblue",
                                  size=0.5, linetype="solid", 
                                  colour ="darkblue"))

ggplot2 l?gende - graphique et logiciel Rggplot2 l?gende - graphique et logiciel R

Changer l?ordre des ?l?ments de la l?gende

Pour modifier l?ordre des ?l?ments ? ?2?, ?0.5?, ?1? :

p + scale_x_discrete(limits=c("2", "0.5", "1"))

ggplot2 l?gende - graphique et logiciel R

Supprimer la l?gende du graphique

# Supprimer seulement le titre de la l?gende
p + theme(legend.title = element_blank())
# Supprimer la l?gende du graphique
p + theme(legend.position='none')

ggplot2 l?gende - graphique et logiciel Rggplot2 l?gende - graphique et logiciel R

Supprimer les slashes dans la l?gende d?un barplot

# Graphe par d?faut
ggplot(data=ToothGrowth, aes(x=dose, fill=dose)) + geom_bar()
# Changer la couleur de la bordure, 
# mais des slashes sont ajout?s dans la l?gende
ggplot(data=ToothGrowth, aes(x=dose, fill=dose)) +
  geom_bar(colour="black")
# Supprimer les slashes: 
  #1. Dessiner le barplot sans couleur de bordure,
  #2. Dessiner encore le barplot avec couleur de bordure,
  # mais sans l?gende (show_guide=FALSE)
ggplot(data=ToothGrowth, aes(x=dose, fill=dose))+ 
  geom_bar() + 
  geom_bar(colour="black", show_guide=FALSE)

ggplot2 l?gende - graphique et logiciel Rggplot2 l?gende - graphique et logiciel Rggplot2 l?gende - graphique et logiciel R

guides() : D?finir ou supprimer la l?gende pour une esth?tique sp?cifique

Il est possible d?utiliser la fonction guides() pour d?finir ou supprimer la l?gende d?une esth?tique particuli?re - aesthetic en anglais - (fill, color, size, shape, etc).

Le jeu de donn?es mtcars est utilis? :

# Preparer les donn?es : convertir les variables cyl et gear en "facteur"
mtcars$cyl<-as.factor(mtcars$cyl)
mtcars$gear <- as.factor(mtcars$gear)
head(mtcars)
##                    mpg cyl disp  hp drat    wt  qsec vs am gear carb
## Mazda RX4         21.0   6  160 110 3.90 2.620 16.46  0  1    4    4
## Mazda RX4 Wag     21.0   6  160 110 3.90 2.875 17.02  0  1    4    4
## Datsun 710        22.8   4  108  93 3.85 2.320 18.61  1  1    4    1
## Hornet 4 Drive    21.4   6  258 110 3.08 3.215 19.44  1  0    3    1
## Hornet Sportabout 18.7   8  360 175 3.15 3.440 17.02  0  0    3    2
## Valiant           18.1   6  225 105 2.76 3.460 20.22  1  0    3    1

Graphique par d?faut sans sp?cification de guides

Le code de R ci-dessous cr?e un nuage de points. La couleur et la forme des points sont d?termin?es par les variables facteurs cyl et gear, respectivement. La taille des points est contr?l? par la variable qsec.

p <- ggplot(data = mtcars, 
    aes(x=mpg, y=wt, color=cyl, size=qsec, shape=gear))+
    geom_point()
# Afficher le graphique sans sp?cification de guides
p

ggplot2 l?gende - graphique et logiciel R

Changez la position de l?gende pour plusieurs guides

# Change la position de la l?gende
p +theme(legend.position="bottom")

ggplot2 l?gende - graphique et logiciel R

# Bo?te de l?gende horizontal
p +theme(legend.position="bottom", legend.box = "horizontal")

ggplot2 l?gende - graphique et logiciel R

Change l?ordre des l?gendes pour plusieurs guides

La fonction guide_legend() est utilis?e:

p+guides(color = guide_legend(order=1),
         size = guide_legend(order=2),
         shape = guide_legend(order=3))

ggplot2 l?gende - graphique et logiciel R

Si une couleur continue est utilis?e, l?ordre de la ?l?gende couleur? peut ?tre chang?e en utilisant la fonction guide_colourbar():

qplot(data = mpg, x = displ, y = cty, size = hwy,
      colour = cyl, shape = drv) +
  guides(colour = guide_colourbar(order = 1),
         alpha = guide_legend(order = 2),
         size = guide_legend(order = 3))

ggplot2 l?gende - graphique et logiciel R

Supprimer la l?gende pour une esth?tique particuli?re

Le code R ci-dessous, supprime la l?gende pour les esth?tique couleur et taille :

p+guides(color = FALSE, size = FALSE)

ggplot2 l?gende - graphique et logiciel R

La suppression d?une l?gende particuli?re peut ?tre faite ?galement lorsque vous utilisez les fonctions scale_xx. Dans ce cas l?argument guide est utilis? comme suit :

# Supprimer la l?gende pour le type de points
p+scale_shape(guide=FALSE)
# Supprimer la l?gende pour la taille
p +scale_size(guide=FALSE)
# Supprimer la l?gende pour la couleur
p + scale_color_manual(values=c('#999999','#E69F00','#56B4E9'),
                       guide=FALSE)

ggplot2 l?gende - graphique et logiciel Rggplot2 l?gende - graphique et logiciel Rggplot2 l?gende - graphique et logiciel R

Infos

Cette analyse a ?t? faite en utilisant 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 31161 fois
Licence - Pas d?Utilisation Commerciale - Partage dans les M?mes Conditions
Licence Creative Commons