Upload
adelphe-pellerin
View
130
Download
6
Embed Size (px)
Citation preview
Présentation du package graphique ggplot2
Alicia Gehin, Charlotte Rüger, Carole Cortes
Principe du package ggplot2
Fonctions du packages
Les différents Layers
Exemples d’utilisation
Présentation du package graphique ggplot2
Principe du package ggplot2
2
Graphique = association d’objets : calques(basé sur Grammaire des graphiques de
Wilkinson)
Vocabulaire plus intuitif
Présentation du package graphique ggplot2
1ère fonction de base : qplot()
3
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
2ème fonction de base : ggplot()
pour aller plus loin que la fonction qplot()
graphique plus complexe
4
Présentation du package graphique ggplot2
2ème fonction de base : ggplot()
5
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
Les différents types de Layers
6
geom_x()
scale_x()
facet_x()
stat_x()
coord_x()
theme_X()
position_x()
Présentation du package graphique ggplot2
Layers de type geom_x()
7
qplot(T15,maxO3,data=ozone)
Possibilité d’ajouter une courbe de tendance
qplot(Ne15,maxO3,data=ozone, geom=c("point","smooth"),method=loess,span=1)
40
80
120
160
15 20 25 30 35T15
ma
xO3
Nuage de points
Présentation du package graphique ggplot2
Layers de type geom_x()
8
Boxplot
40
80
120
160
Est Nord Ouest Sudvent
ma
xO3
qplot(vent,maxO3,data=ozone, geom="boxplot",outlier.colour = "red")
Jitter
40
80
120
160
Est Nord Ouest Sudvent
ma
xO3
vent
Est
Nord
Ouest
Sud
qplot(vent,maxO3,data=ozone, geom="jitter",colour=vent)
Présentation du package graphique ggplot2
qplot(maxO3,data=ozone,geom="histogram",binwidth=10,fill=vent)
qplot(maxO3,data=ozone, geom="density" , fill=pluie, alpha=I(1/5)))
Histogramme Courbe de densité
Layers de type geom_x()
9
,adjust=2
Présentation du package graphique ggplot2
Barplot
0
10
20
30
40
50
Est Nord Ouest Sudvent
cou
nt
0.02
0.03
0.04
0.05
1970 1980 1990 2000date
un
em
plo
y/p
op
Série temporelle
qplot(date,unemploy/pop,data=economics,geom="line")
Layers de type geom_x()
bar=ggplot(ozone,aes(x=vent))bar+ geom_bar(fill="grey", colour="black")
10
Présentation du package graphique ggplot2
Layers de type position_()
qplot(maxO3, data=ozone, geom="histogram", fill=vent, position="stack",binwidth=25)
qplot(maxO3, data=ozone, geom="histogram", fill=vent, position="dodge",binwidth=25)
0
5
10
15
20
0 50 100 150 200maxO3
cou
nt
vent
Est
Nord
Ouest
Sud
11
Présentation du package graphique ggplot2
qplot(maxO3, data=ozone, geom="histogram", fill=vent, position="fill",binwidth=25)
Layers de type position_()
12
Présentation du package graphique ggplot2
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 xY : position de ySize : taille d’un geomShape : forme d’un geomLinetype : type de ligne d’un geomColour/fill : couleur d’un geomAlpha : 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
13
Présentation du package graphique ggplot2
Layers de type scale_x()
1
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)
20
30
40
80 120 160 200Nombre.annuel.de.jours.de.pluie
Pré
cip
ita
tio
ns.d
e.m
ai.à
.ao
ut
Géographie
Est
Nord
Ouest
Sud
Présentation du package graphique ggplot2
Contrôle l’apparence des points et de la légende associée au graphique
qplot(Overall.quality, Fruity, data = wine, shape =Soil)
Layers de type scale_x()
2.4
2.6
2.8
3.0
3.2
2.4 2.8 3.2 3.6 4.0Overall.quality
Fru
ity
Soil
Reference
Env1
Env2
Env4
Présentation du package graphique ggplot2
• 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")
Layers de type scale_x()
5.00
5.25
5.50
5.75
6.00
5.00 5.25 5.50 5.75 6.00x
y
10
20
30z
14
Présentation du package graphique ggplot2
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
Layers de type facet_x()
15
Présentation du package graphique ggplot2
• 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")
Layers de type facet_x()
0
1
2
3
0
1
2
3
0
1
2
3
0
1
2
3
Est
Nord
Ouest
Sud
100 150 200Nombre.annuel.de.jours.de.pluie
co
un
t
Est Nord Ouest Sud
0
1
2
3
100 150 200 100 150 200 100 150 200 100 150 200Nombre.annuel.de.jours.de.pluie
cou
nt
16
Présentation du package graphique ggplot2
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))
Layers de type facet_x()
17
Présentation du package graphique ggplot2
ggplot() + facet_grid(gc~benchmark) + geom_boxplot(data=d, mapping=aes(x=opt, y=time, color=opt))
Layers de type facet_x()
places the panels in a grid with one row for each gc and one column for each benchmark.
18
Présentation du package graphique ggplot2
Layers de type stat_x()
19
transformation statistiques des données avant graphique
graph=ggplot(cochon, aes(x=Sexe, y=Race))graph+stat_sum(aes(group=1))
LW
LWLRP
f mcSexe
Ra
ce
prop
0.24
0.25
0.26
Présentation du package graphique ggplot2
Layers de type stat_x()
20
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")
20000
30000
40000
f mcSexe
Lip
ide
sg
Présentation du package graphique ggplot2
Layers de type coord_x()
21
modification du système des coordonnées
graph+coord_flip() coord_trans()
Est
Nord
Ouest
Sud
0 10 20 30 40 50count
ven
t
vent
Est
Nord
Ouest
Sud
graph=ggplot(ozone, aes(vent, fill=vent))+geom_bar()
jdd = data.frame(a = abs(rnorm(26)),letters) graph = ggplot(jdd,aes(a,letters)) + geom_point() graph + coord_trans(x = "log10")
abcdefghij
kl
mnopqrstuvwxyz
0 1 2 3a
lette
rs
abcdefghij
kl
mnopqrstuvwxyz
1 2a
lette
rs
Présentation du package graphique ggplot2
Layers de type coord_x()
22
graph=ggplot(ozone, aes(x=factor(1), fill=vent))+geom_bar() +coord_polar(theta=« y »)
0
30
60
90
1
count
fact
or(
1)
vent
Est
Nord
Ouest
Sud
Présentation du package graphique ggplot2
Layers de type theme_x()
23
Permet d’améliorer l’apparence globale des graphiques en modifiant les couleurs de fond
graph+theme_bw() graph+theme_gray()
graph=ggplot(ozone, aes(maxO3, fill=vent))+geom_bar()
0
3
6
9
60 90 120 150 180maxO3
cou
nt
vent
Est
Nord
Ouest
Sud
0
3
6
9
60 90 120 150 180maxO3
cou
nt
vent
Est
Nord
Ouest
Sud
0
3
6
9
60 90 120 150 180maxO3
coun
t
vent
Est
Nord
Ouest
Sud
theme_update(plot.background = theme_rect(fill = "yellow"))
Présentation du package graphique ggplot2
Exemples d’utilisation
24
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
Exemples d’utilisation
24
par David Kahle (Rice University)https ://github.com/hadley/ggplot2/wiki
Présentation du package graphique ggplot2
Conclusion
25
graphiques plus design et plus complexes
code plus intuitif
graphique = objet
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/wp-content/uploads/2011/09/handout
_ggplot2.pdf