Alicia Gehin, Charlotte Rüger, Carole Cortes. Principe du package ggplot2 Fonctions du packages Les...

Preview:

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

Recommended