ggplot2 légende : Modifier facilement la légende d'un graphique - Logiciel R et visualisation de données
- Donn?es
- Exemple de graphes
- Changer la position d?une l?gende
- Changer le titre de la l?gende et le style de police du texte
- Changer la couleur de fond de la l?gende
- Changer l?ordre des ?l?ments de la l?gende
- Supprimer la l?gende du graphique
- Supprimer les slashes dans la l?gende d?un barplot
- guides() : D?finir ou supprimer la l?gende pour une esth?tique sp?cifique
- Infos
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
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")
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))
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"))
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"))
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"))
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')
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)
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
Changez la position de l?gende pour plusieurs guides
# Change la position de la l?gende
p +theme(legend.position="bottom")
# Bo?te de l?gende horizontal
p +theme(legend.position="bottom", legend.box = "horizontal")
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))
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))
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)
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)
Infos
Cette analyse a ?t? faite en utilisant le logiciel R (ver. 3.1.2) et le package ggplot2 (ver. 1.0.0)
Show me some love with the like buttons below... Thank you and please don't forget to share and comment below!!
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!
Recommended for You!
Click to follow us on Facebook:
Comment this article by clicking on "Discussion" button (top-right position of this page)