320 likes | 697 Views
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. Principe du package ggplot2. Graphique = association d’objets : calques
E N D
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
Principe du package ggplot2 Graphique = association d’objets : calques (basé sur Grammaire des graphiques de Wilkinson) Vocabulaire plus intuitif 2 Présentation du package graphique ggplot2
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 … 3 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
Création d’un objet ggplot : 2 arguments 2ème fonction de base : ggplot() • jeu de données • Paramètres esthétiques du graphique : fonction aes() • Graph=ggplot(data, aes(x, y, …)) • Superposition de calque Graph + layer1 + layer2 … 5 Présentation du package graphique ggplot2
geom_x() Les différents types de Layers • position_x() • scale_x() • facet_x() • stat_x() • coord_x() • theme_X() 6 Présentation du package graphique ggplot2
Nuage de points Possibilité d’ajouter une courbe de tendance Layers de type geom_x() qplot(Ne15,maxO3,data=ozone, geom=c("point","smooth"),method=loess,span=1) qplot(T15,maxO3,data=ozone) 7 Présentation du package graphique ggplot2
Boxplot Jitter Layers de type geom_x() qplot(vent,maxO3,data=ozone, geom="boxplot",outlier.colour = "red") qplot(vent,maxO3,data=ozone, geom="jitter",colour=vent) 8 Présentation du package graphique ggplot2
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))) 9 Présentation du package graphique ggplot2
Layers de type geom_x() Barplot Série temporelle bar=ggplot(ozone,aes(x=vent)) bar+ geom_bar(fill="grey", colour="black") qplot(date,unemploy/pop, data=economics,geom="line") 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) 11 Présentation du package graphique ggplot2
Layers de type position_() qplot(maxO3, data=ozone, geom="histogram", fill=vent, position="fill",binwidth=25) 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 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 13 Présentation du package graphique ggplot2
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) Layers de type scale_x() 1 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 qplot(Overall.quality, Fruity, data = wine, shape =Soil) Présentation du package graphique ggplot2
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") 14 Présentation du package graphique ggplot2
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 15 Présentation du package graphique ggplot2
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") 16 Présentation du package graphique ggplot2
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)) 17 Présentation du package graphique ggplot2
places the panels in a grid with one row for each gc and one column for each benchmark. Layers de type facet_x() ggplot() + facet_grid(gc~benchmark) + geom_boxplot(data=d, mapping=aes(x=opt, y=time, color=opt)) 18 Présentation du package graphique ggplot2
transformation statistiques des données avant graphique Layers de type stat_x() graph=ggplot(cochon, aes(x=Sexe, y=Race)) graph+stat_sum(aes(group=1)) 19 Présentation du package graphique ggplot2
transformation statistiques des données avant de faire le graphique Layers de type stat_x() Graph=qplot(Sexe, Lipidesg, data=cochon) graph+stat_summary(fun.data="mean_cl_normal", colour="red") 20 Présentation du package graphique ggplot2
modification du système des coordonnées Layers de type coord_x() 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") 21 Présentation du package graphique ggplot2
graph=ggplot(ozone, aes(x=factor(1), fill=vent))+geom_bar() +coord_polar(theta=« y ») Layers de type coord_x() 22 Présentation du package graphique ggplot2
Permet d’améliorer l’apparence globale des graphiques en modifiant les couleurs de fond Layers de type theme_x() graph=ggplot(ozone, aes(maxO3, fill=vent))+geom_bar() theme_update(plot.background = theme_rect(fill = "yellow")) graph+theme_gray() graph+theme_bw() 23 Présentation du package graphique ggplot2
Exemples d’utilisation graph= ggplot(nba.m, aes(variable, Name)) + geom_tile(aes(fill = rescale), + colour = "white") + scale_fill_gradient(low = "white", + high = "steelblue")) 24 Présentation du package graphique ggplot2 Source : learnr (http ://learnr.wordpress.com/)
Exemples d’utilisation par David Kahle (RiceUniversity) https ://github.com/hadley/ggplot2/wiki 24 Présentation du package graphique ggplot2
Conclusion • graphiques plus design et plus complexes • code plus intuitif • graphique = objet 25 Présentation du package graphique ggplot2
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/ggplotTutorial.pdf • http://www.ceb-institute.org/bbs/wp-content/uploads/2011/09/handout_ggplot2.pdf