2ème fonction de base : ggplot()

Report
Alicia Gehin, Charlotte Rüger, Carole Cortes
Principe du package ggplot2
Fonctions du packages
Les différents Layers
Exemples d’utilisation
Principe du package ggplot2
Graphique = association d’objets : calques
(basé sur Grammaire des graphiques de
Wilkinson)
Vocabulaire plus intuitif
Présentation du package graphique ggplot2
2
1ère fonction de base : qplot()

x , y (fonctions de variables possibles: log (x), log (y)…
 data
 main, xlab, ylab, xlim, ylim… (arguments similaires à la fonction plot)
 arguments définissant la nature du graphique …
Présentation du package graphique ggplot2
3
2ème fonction de base : ggplot()
 pour aller plus loin que la fonction qplot()
 graphique plus complexe
Présentation du package graphique ggplot2
4
2ème fonction de base : ggplot()
 Création d’un objet ggplot : 2 arguments
 jeu de données
Paramètres esthétiques du graphique : fonction aes()
Graph=ggplot(data, aes(x, y, …))
 Superposition de calque
Graph + layer1 + layer2 …
Présentation du package graphique ggplot2
5
Les différents types de Layers
 geom_x()
 position_x()
 scale_x()
 facet_x()
 stat_x()
 coord_x()
 theme_X()
Présentation du package graphique ggplot2
6
Layers de type geom_x()
Nuage de points
Possibilité d’ajouter une courbe de tendance
160
maxO3
120
80
40
15
20
25
30
35
T15
qplot(T15,maxO3,data=ozone)
qplot(Ne15,maxO3,data=ozone,
geom=c("point","smooth"),method=loess,span=1)
Présentation du package graphique ggplot2
7
Layers de type geom_x()
Boxplot
Jitter
160
160
120
120
vent
maxO3
maxO3
Est
Nord
Ouest
Sud
80
80
40
40
Est
Nord
Ouest
Sud
Est
Nord
qplot(vent,maxO3,data=ozone,
geom="boxplot",outlier.colour = "red")
Ouest
Sud
vent
vent
qplot(vent,maxO3,data=ozone,
geom="jitter",colour=vent)
Présentation du package graphique ggplot2
8
Layers de type geom_x()
Histogramme
Courbe de densité
,adjust=2
qplot(maxO3,data=ozone,geom="histogram",
binwidth=10,fill=vent)
qplot(maxO3,data=ozone,
geom="density" , fill=pluie, alpha=I(1/5)))
Présentation du package graphique ggplot2
9
Layers de type geom_x()
Barplot
Série temporelle
50
0.05
40
unemploy/pop
0.04
count
30
20
0.03
0.02
10
0
Est
Nord
Ouest
Sud
1970
bar=ggplot(ozone,aes(x=vent))
bar+ geom_bar(fill="grey", colour="black")
1980
1990
2000
date
vent
qplot(date,unemploy/pop,
data=economics,geom="line")
Présentation du package graphique ggplot2
10
Layers de type position_()
qplot(maxO3, data=ozone, geom="histogram",
fill=vent, position="stack",binwidth=25)
20
15
vent
count
Est
Nord
Ouest
10
Sud
5
0
0
50
100
150
200
maxO3
qplot(maxO3, data=ozone, geom="histogram",
fill=vent, position="dodge",binwidth=25)
Présentation du package graphique ggplot2
11
Layers de type position_()
qplot(maxO3, data=ozone, geom="histogram", fill=vent, position="fill",binwidth=25)
Présentation du package graphique ggplot2
12
Layers de type scale_x()
 Contrôle l’apparence des points et de la légende associée au graphique
 Mise en correspondance entre les données et les propriétés esthétiques
du geom
 Les propriétés esthétiques de ggplot2 :
X : position de x
Y : position de y
Size : taille d’un geom
Shape : forme d’un geom
Linetype : type de ligne d’un geom
Colour/fill : couleur d’un geom
Alpha : transparence d’un geom, O=transparent… 1=opaque
 Ggplot2 propose 2 différents scales (continus et discrets) pour la plupart
des propriétés esthétiques
 Graphique: scales représentés
Présentation du package graphique ggplot2
13
Layers de type scale_x()
 Contrôle l’apparence des points et de la légende associée au graphique
qplot(Nombre.annuel.de.jours.de.pluie, Précipitations.de.mai.à.aout,
data = pluie, colour = Géographie)
Précipitations.de.mai.à.aout
40
Géographie
Est
Nord
30
Ouest
Sud
20
80
120
160
200
Nombre.annuel.de.jours.de.pluie
Présentation du package graphique ggplot2
1
Layers de type scale_x()
 Contrôle l’apparence des points et de la légende associée au
graphique
qplot(Overall.quality, Fruity, data = wine, shape =Soil)
3.2
3.0
Fruity
Soil
Reference
2.8
Env1
Env2
Env4
2.6
2.4
2.4
2.8
3.2
Overall.quality
Présentation du package graphique ggplot2
3.6
4.0
Layers de type scale_x()
•
•
•
dsub <- subset(diamonds, x > 5 & x < 6 & y > 5 & y < 6)
(d <- qplot(x, y, data=dsub, colour=z))
d + scale_colour_gradient(limits=c(3, 4), low="red", high="white")
6.00
5.75
z
y
30
20
5.50
10
5.25
5.00
5.00
5.25
5.50
5.75
6.00
x
Présentation du package graphique ggplot2
14
Layers de type facet_x()
 Le principe : diviser le jeu de données en sous ensembles
• Cela facilite la comparaison de sous groupes d’un jeu de
données.
• Selon si on veut le facteur en ligne ou en colonne syntaxe
différente
• facets = facteur ~ . produira un graphique multiple en lignes
• facets = . ~ facteur produira un graphique multiple en
colonnes
Présentation du package graphique ggplot2
15
Layers de type facet_x()
•
•
qplot(Nombre.annuel.de.jours.de.pluie, data = pluie, facets = Géographie ~ ., geom =
"histogram")
qplot(Nombre.annuel.de.jours.de.pluie, data = pluie, facets = . ~ Géographie, geom =
"histogram")
3
Est
Ouest
Sud
3
Est
2
Nord
1
0
3
Nord
2
2
0
3
count
count
1
Ouest
2
1
1
0
3
Sud
2
1
0
0
100
150
200
Nombre.annuel.de.jours.de.pluie
100
150
200
100
150
200
100
150
200
Nombre.annuel.de.jours.de.pluie
Présentation du package graphique ggplot2
100
150
200
16
Layers de type facet_x()
ggplot() + geom_boxplot(data=d,mapping=aes(x=opt, y=time, color=opt))
ggplot() + facet_wrap(~benchmark) + geom_boxplot(data=d,
mapping=aes(x=opt, y=time, color=opt))
Présentation du package graphique ggplot2
17
Layers de type facet_x()
ggplot() + facet_grid(gc~benchmark) + geom_boxplot(data=d,
mapping=aes(x=opt, y=time, color=opt))
Présentation du package graphique ggplot2
18
Layers de type stat_x()
 transformation statistiques des données avant
graphique
LWLRP
prop
Race
graph=ggplot(cochon, aes(x=Sexe, y=Race))
graph+stat_sum(aes(group=1))
0.24
0.25
0.26
LW
f
mc
Sexe
Présentation du package graphique ggplot2
19
Layers de type stat_x()
 transformation statistiques des données avant
de faire le graphique
Graph=qplot(Sexe, Lipidesg, data=cochon)
graph+stat_summary(fun.data="mean_cl_normal",
colour="red")
Lipidesg
40000
30000
20000
f
mc
Sexe
Présentation du package graphique ggplot2
20
Layers de type coord_x()
 modification du système des coordonnées
graph=ggplot(ozone, aes(vent, fill=vent))+geom_bar()
coord_trans()
graph+coord_flip()
jdd = data.frame(a = abs(rnorm(26)),letters)
graph = ggplot(jdd,aes(a,letters)) + geom_point()
graph + coord_trans(x = "log10")
Ouest
vent
vent
Est
Nord
Ouest
Sud
letters
Nord
Est
0
10
20
30
count
40
50
z
y
x
w
v
u
t
s
r
q
p
o
n
m
l
k
j
i
h
g
f
e
d
c
b
a
letters
Sud
0
1
2
z
y
x
w
v
u
t
s
r
q
p
o
n
m
l
k
j
i
h
g
f
e
d
c
b
a
3
a
Présentation du package graphique ggplot2
1
2
a
21
Layers de type coord_x()
graph=ggplot(ozone, aes(x=factor(1), fill=vent))+geom_bar() +coord_polar(theta=« y »)
0
1
90
vent
factor(1)
Est
Nord
30
Ouest
Sud
60
count
Présentation du package graphique ggplot2
22
Layers de type theme_x()
 Permet d’améliorer l’apparence globale des graphiques en
modifiant les couleurs de fond
graph=ggplot(ozone, aes(maxO3, fill=vent))+geom_bar()
graph+theme_gray()
graph+theme_bw()
9
theme_update(plot.background =
theme_rect(fill = "yellow"))
9
9
Nord
Ouest
vent
Nord
Ouest
Sud
3
90
120
maxO3
150
180
Nord
Ouest
Sud
3
0
60
Est
6
Sud
3
0
vent
Est
6
count
Est
count
count
vent
6
0
60
90
120
150
180
maxO3
Présentation du package graphique ggplot2
60
90
120
maxO3
150
180
23
Exemples d’utilisation
graph= ggplot(nba.m, aes(variable, Name))
+ geom_tile(aes(fill = rescale), + colour = "white")
+ scale_fill_gradient(low = "white", + high =
"steelblue"))
Source : learnr (http ://learnr.wordpress.com/) Présentation du package graphique ggplot2
24
Exemples d’utilisation
par David Kahle (Rice University)
https
://github.com/hadley/ggplot2/wiki
Présentation du package graphique ggplot2
24
Conclusion
 graphiques plus design et plus complexes
 code plus intuitif
 graphique = objet
Présentation du package graphique ggplot2
25
Merci de votre attention !
Références
• http://docs.ggplot2.org/current/
• http://ggplot2.org/
• https://github.com/hadley/ggplot2/blob/master/R/aes.r
• http://rug.mnhn.fr/semin-r/PDF/semin-R_ggplot2_JSueur_200510.pdf
• http://rug.mnhn.fr/semin-r/PDF/INED-SFdS-MNHN_Sueur_280411.pdf
• http://www.columbia.edu/~cjd11/charles_dimaggio/DIRE/resources/R/gg
plotTutorial.pdf
• http://www.ceb-institute.org/bbs/wpcontent/uploads/2011/09/handout_ggplot2.pdf

similar documents