du package graphique ggplot2 Présentation du package graphique ggplot2 développé par Hadley Wickham 1ere version en 2007 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 … …. qui correspond à un type de layer 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
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, …)) Fonction aes() prend comme arguments les différents éléments qui décrivent comment on souhaite visualiser les variables Superposition de calque Graph + layer1 + layer2 … 5 Présentation du package graphique ggplot2
Les différents types de Layers geom_x() position_x() scale_x() facet_x() stat_x() coord_x() theme_X() 6 Présentation du package graphique ggplot2
Layers de type geom_x() Nuage de points Possibilité d’ajouter une courbe de tendance 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
Layers de type geom_x() Boxplot Jitter 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
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) 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
Layers de type facet_x() 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
Layers de type stat_x() transformation statistiques des données avant graphique graph=ggplot(cochon, aes(x=Sexe, y=Race)) graph+stat_sum(aes(group=1)) cochon = read.table(choose.files("C:/Users/bibiche/Documents/cours + recherches/insfa/5A/modélisation/35830_allom.txt"),header=TRUE, sep="", dec="," ) 19 Présentation du package graphique ggplot2
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") 20 Présentation du package graphique ggplot2
Layers de type coord_x() modification du système des coordonnées graph=ggplot(ozone, aes(vent, fill=vent))+geom_bar() graph+coord_flip() coord_trans() 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
Layers de type coord_x() graph=ggplot(ozone, aes(x=factor(1), fill=vent))+geom_bar() +coord_polar(theta=« y ») 22 Présentation du package graphique ggplot2
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() 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 Source : learnr (http ://learnr.wordpress.com/) Présentation du package graphique ggplot2
Exemples d’utilisation par David Kahle (Rice University) 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 =>on peut les sauvegarder, tester si is.ggplot, graphique = objet 25 Présentation du package graphique ggplot2
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/ggplotTutorial.pdf http://www.ceb-institute.org/bbs/wp-content/uploads/2011/09/handout_ggplot2.pdf