Introduction ` a ggplot2 Vos graphiques usuels Pour aller plus loin Cr´eer et G´erer vos graphiques dans R avec ggplot2 Karl-Augustt, A. Utilisateur de R 29 Mars, 2014 Karl-Augustt, A. Cr´ eer et G´ erer vos graphiques dans R avec ggplot2 Introduction ` a ggplot2 Vos graphiques usuels Pour aller plus loin Sommaire 1 Introduction ` a ggplot2 2 Vos graphiques usuels 3 Pour aller plus loin ggplot2 Karl-Augustt, A. Cr´ eer et G´ erer vos graphiques dans R avec ggplot2 Introduction ` a ggplot2 Vos graphiques usuels Pour aller plus loin 1 Introduction ` a ggplot2 2 Vos graphiques usuels Les whiskers plots (boˆıtes `a moustache) Diagrammes en bˆatons & histogrammes : amusez-vous ! Les Jeux d’esth´etiques 3 Pour aller plus loin Karl-Augustt, A. Cr´ eer et G´ erer vos graphiques dans R avec ggplot2 Introduction ` a ggplot2 Vos graphiques usuels Pour aller plus loin Les graphiques dans R Dans R, les packages requis pour les graphiques ont presque les mˆemes similarit´es, mais ne donnent pas les mˆemes rendus. Pour changer un graphe, il faut parfois changer non seulement la fonction utilis´ee, mais aussi, les propri´et´es de la donn´ee entr´ee au d´epart. ggplot2 Karl-Augustt, A. Cr´ eer et G´ erer vos graphiques dans R avec ggplot2 Introduction ` a ggplot2 Vos graphiques usuels Pour aller plus loin Exemple : limites du package base : Z On ne peut modifier ou supprimer un ´el´ement du contenu ; Z Modification libre non possible pour l’utilisateur ; > x=c(7,7,8,8,8,1,2,1,1,1,1,1,1,1,1,1,3,4,5,5,5,5) > hist(x) #histogramme avec base > qplot(x,geom="histogram",binwidth=1) ggplot2 Karl-Augustt, A. Cr´ eer et G´ erer vos graphiques dans R avec ggplot2 Introduction ` a ggplot2 Vos graphiques usuels Pour aller plus loin Figure: Outputs base versus ggplot2 10.0 Histogram of x count 8 6 2 4 5.0 2.5 0 Frequency 7.5 1 2 3 4 5 6 7 8 x 0.0 2 4 6 8 x (a) Avec base Karl-Augustt, A. (b) Avec ggplot2 Cr´ eer et G´ erer vos graphiques dans R avec ggplot2 Introduction ` a ggplot2 Vos graphiques usuels Pour aller plus loin Question : Pourquoi ggplot2 ? Karl-Augustt, A. Cr´ eer et G´ erer vos graphiques dans R avec ggplot2 Introduction ` a ggplot2 Vos graphiques usuels Pour aller plus loin Background ã Qu’est-ce qu’un graphique ? ã Qu’est-ce qu’une grammaire des graphiques ? ggplot2 Karl-Augustt, A. Cr´ eer et G´ erer vos graphiques dans R avec ggplot2 Introduction ` a ggplot2 Vos graphiques usuels Pour aller plus loin Construire un grapphique : comment ? Selon l’approche Wilkinson, un graphique tient lieu de six ´el´ements de construction : Z DATA : les donn´ees (un ensemble de variables extraites d’une base de donn´ees) ; Z TRANS : les transformations de variables ; Z SCALE : les transformations d’´echelles (ex : log10 ) ; Z COORD : le choix des coordonn´ees (ex : polaire) ; Z ELEMENT : les ´el´ements du graphe (ex : des points) et leurs attributs esth´etiques ; Z GUIDE : les axes, les l´egendes, etc. Karl-Augustt, A. ggplot2 Cr´ eer et G´ erer vos graphiques dans R avec ggplot2 Introduction ` a ggplot2 Vos graphiques usuels Pour aller plus loin R´ealiser un grapphique statistique : comment ? graphique Output (rendu) data source variables E. esth´ etiques T. alg´ ebriques Type de Coordonn´ ees T. ´ echelles E. Statistiques E. G´ eom´ etriques Ensemble des variables Karl-Augustt, A. Cr´ eer et G´ erer vos graphiques dans R avec ggplot2 graphe Introduction ` a ggplot2 Vos graphiques usuels Pour aller plus loin La Grammaire de Wilkinson ne fait pas la typologie des graphiques Karl-Augustt, A. Cr´ eer et G´ erer vos graphiques dans R avec ggplot2 Introduction ` a ggplot2 Vos graphiques usuels Pour aller plus loin ~ L’apprentissage de Ggplot2 est facile. ~ Ggplot2 fait de vous un designer, car vous avez le choix de cr´eer et changer des templates, des th`emes (le look) de vos graphiques `a volont´e. ~ Ggplot2 fonctionne avec une puissante grammaire des graphiques (celle de Wilkinson,2005), et vous donne le goˆ ut de la statistique, car ggplot2 est un maˆıtre de la pr´esentation des donn´ees. ggplot2 Karl-Augustt, A. Cr´ eer et G´ erer vos graphiques dans R avec ggplot2 Introduction ` a ggplot2 Vos graphiques usuels Pour aller plus loin La derni`ere version disponible est : 0.9.3.1 ì http://docs.ggplot2.org/current/ ì R Graphics Cookbook de Winston Chang ì ggplot2 : Elegant Graphics for Data Analysis de Hadley Wickham ì https://groups.google.com/forum/#!forum/ggplot2 pour tout partage (´eventuellement vous inqui´etudes de mˆeme). ggplot2 Karl-Augustt, A. Cr´ eer et G´ erer vos graphiques dans R avec ggplot2 Introduction ` a ggplot2 Vos graphiques usuels Pour aller plus loin Les whiskers plots (boˆıtes ` a moustache) Diagrammes en bˆ atons 1 Introduction ` a ggplot2 2 Vos graphiques usuels Les whiskers plots (boˆıtes `a moustache) Diagrammes en bˆatons & histogrammes : amusez-vous ! Les Jeux d’esth´etiques 3 Pour aller plus loin Karl-Augustt, A. Cr´ eer et G´ erer vos graphiques dans R avec ggplot2 Introduction ` a ggplot2 Vos graphiques usuels Pour aller plus loin Les whiskers plots (boˆıtes ` a moustache) Diagrammes en bˆ atons Les sources de donn´ees L’une des bases utilis´ees ici est celle de L’Enquˆete D´emographique Sant´e du B´enin, ann´ee 2006. Les autres exemples illustratifs sont impl´ement´es dans le package ggplot2, et peuvent ˆetres t´el´echarg´es depuis R Datasets, voir : http ://vincentarelbundock.github.io/Rdatasets/datasets.html y y EDS III B´enin 2006. Donn´ees extraites de la 1974 de Motor Trend magazine am´ericain, et comprend la consommation de carburant et 10 aspects de la conception de l’automobile et de la performance pour 32 voitures (1973-1974 mod`eles). y Donn´ees de Fuel economy de 1999 `a 2008 pour 38 mod`eles populaires de voitures. y Donn´ees relatifs aux prix 53,941 diamants taill´ es. Karl-Augustt, A. Cr´ eer et G´ erer vos graphiques dans R avec ggplot2 Introduction ` a ggplot2 Vos graphiques usuels Pour aller plus loin Les whiskers plots (boˆıtes ` a moustache) Diagrammes en bˆ atons Installation > install.packages(”ggplot2”) > library(ggplot2) ggplot2 Karl-Augustt, A. Cr´ eer et G´ erer vos graphiques dans R avec ggplot2 Introduction ` a ggplot2 Vos graphiques usuels Pour aller plus loin Les whiskers plots (boˆıtes ` a moustache) Diagrammes en bˆ atons Description des commandes de ggplot2 : ggplot() & qplot() mapping[1] := (x,y) ; mapping[2] := aes(x, y) qplot(mapping[1], data.frame, layer[1] (geom = "", stat = "", position = "")) + layer[2]( geom_param` etres = list(), stat_param` etres = list(), ) Karl-Augustt, A. ggplot(data.frame, mapping[2] + layer( geom_param` etres = list(), stat_param` etres = list(), theme_param` etres=list(), coord_param` etres=list(), ) ggplot2 Cr´ eer et G´ erer vos graphiques dans R avec ggplot2 Introduction ` a ggplot2 Vos graphiques usuels Pour aller plus loin Les whiskers plots (boˆıtes ` a moustache) Diagrammes en bˆ atons De quoi rassurer le d´ebutant... Les commandes de ggplot2 sont tr`es indicatrices, il n’est donc pas n´ecessaire de retenir une pile de commandes. On peut noter que ggplot2 est multi-optionnel ( comme la plupart des commandes R), mais reste tr`es sp´ecifique. Par exemple, la plupart des options de type geom sont : geom geom geom geom geom geom abline boxplot dotplot histogram segment text geom geom geom geom geom geom bar density freqpoly jitter smooth violin ggplot2 Karl-Augustt, A. Cr´ eer et G´ erer vos graphiques dans R avec ggplot2 Introduction ` a ggplot2 Vos graphiques usuels Pour aller plus loin Les whiskers plots (boˆıtes ` a moustache) Diagrammes en bˆ atons D´ecouvrir geom boxplot geom_boxplot(mapping = NULL, data = NULL, stat = "boxplot", position = "dodge", outlier.colour = "black", outlier.shape = 16, outlier.size = 2, notch = FALSE, notchwidth = 0.5, ...) > p <- ggplot(mtcars, aes(factor(cyl), mpg)) > p + geom_boxplot() ggplot2 Karl-Augustt, A. Cr´ eer et G´ erer vos graphiques dans R avec ggplot2 Introduction ` a ggplot2 Vos graphiques usuels Pour aller plus loin Les whiskers plots (boˆıtes ` a moustache) Diagrammes en bˆ atons p + geom boxplot() 35 30 cyl 8 25 mpg 7 outlier.colour=”green”, outlier.size=5,aes(fill=cyl) 6 20 5 4 15 10 4 6 8 factor(cyl) ggplot2 Karl-Augustt, A. Cr´ eer et G´ erer vos graphiques dans R avec ggplot2 Introduction ` a ggplot2 Vos graphiques usuels Pour aller plus loin Les whiskers plots (boˆıtes ` a moustache) Diagrammes en bˆ atons p + geom boxplot() 35 30 25 4 mpg outlier.colour=”green”, outlier.size=5, aes(fill=factor(cyl)) factor(cyl) 6 20 8 15 10 4 6 8 factor(cyl) ggplot2 Karl-Augustt, A. Cr´ eer et G´ erer vos graphiques dans R avec ggplot2 Introduction ` a ggplot2 Vos graphiques usuels Pour aller plus loin Les whiskers plots (boˆıtes ` a moustache) Diagrammes en bˆ atons p + geom boxplot() 35 30 mpg 25 fill=”grey80”,colour=”#3366FF”, outlier.colour=”green”, outlier.size=5 20 15 10 4 6 8 factor(cyl) ggplot2 Karl-Augustt, A. Cr´ eer et G´ erer vos graphiques dans R avec ggplot2 Introduction ` a ggplot2 Vos graphiques usuels Pour aller plus loin Les whiskers plots (boˆıtes ` a moustache) Diagrammes en bˆ atons p + geom boxplot() 35 30 25 4 mpg colour=”#3366FF”, outlier.colour=”green”, outlier.size=5, aes(fill=factor(cyl)) factor(cyl) 6 20 8 15 10 4 6 8 factor(cyl) ggplot2 Karl-Augustt, A. Cr´ eer et G´ erer vos graphiques dans R avec ggplot2 Introduction ` a ggplot2 Vos graphiques usuels Pour aller plus loin Les whiskers plots (boˆıtes ` a moustache) Diagrammes en bˆ atons Pauvres & Riches ggplot(data1, aes(x=milieu, y=scored)) + geom_boxplot(notch=TRUE) + stat_summary(fun.y="mean", geom="point", shape=23, size=3, fill="red") + xlab("Milieu de R´ esidence")+ ylab ("Score des facteurs") ggplot2 Karl-Augustt, A. Cr´ eer et G´ erer vos graphiques dans R avec ggplot2 Introduction ` a ggplot2 Vos graphiques usuels Pour aller plus loin Les whiskers plots (boˆıtes ` a moustache) Diagrammes en bˆ atons Boxplot Score des facteurs 600 400 200 0 Urbain Rural Milieu de Résidence ggplot2 Karl-Augustt, A. Cr´ eer et G´ erer vos graphiques dans R avec ggplot2 Introduction ` a ggplot2 Vos graphiques usuels Pour aller plus loin Les whiskers plots (boˆıtes ` a moustache) Diagrammes en bˆ atons D´ecouvrir geom bar geom_bar(mapping = NULL, data = NULL, stat = "bin", position ="stack", ...) ggplot2 Karl-Augustt, A. Cr´ eer et G´ erer vos graphiques dans R avec ggplot2 Introduction ` a ggplot2 Vos graphiques usuels Pour aller plus loin Les whiskers plots (boˆıtes ` a moustache) Diagrammes en bˆ atons ggplot(diamonds, aes(clarity, fill=cut)) + geom bar() 10000 cut Fair count Good Very Good Premium 5000 Ideal 0 I1 SI2 SI1 VS2 VS1 clarity Karl-Augustt, A. VVS2 VVS1 IF ggplot2 Cr´ eer et G´ erer vos graphiques dans R avec ggplot2 Introduction ` a ggplot2 Vos graphiques usuels Pour aller plus loin Les whiskers plots (boˆıtes ` a moustache) Diagrammes en bˆ atons ggplot(diamonds, aes(color, fill=cut)) + geom bar() + coord flip() J I cut color H Fair Good G Very Good Premium F Ideal E D 0 3000 6000 9000 count ggplot2 Karl-Augustt, A. Cr´ eer et G´ erer vos graphiques dans R avec ggplot2 Introduction ` a ggplot2 Vos graphiques usuels Pour aller plus loin Les whiskers plots (boˆıtes ` a moustache) Diagrammes en bˆ atons Essayons ggplot(diamonds, aes(clarity)) + geom_bar(aes(fill=color)) + facet_wrap(~ cut) Et que nous donnera ceci ? ggplot(diamonds, aes(clarity)) + geom_bar(aes(fill=color)) + facet_wrap(~ cut) +scale_fill_brewer() ggplot2 Karl-Augustt, A. Cr´ eer et G´ erer vos graphiques dans R avec ggplot2 Introduction ` a ggplot2 Vos graphiques usuels Pour aller plus loin Les whiskers plots (boˆıtes ` a moustache) Diagrammes en bˆ atons Fair Good Very Good 5000 4000 3000 color 2000 D count 1000 E 0 F Premium Ideal G 5000 H 4000 I 3000 J 2000 1000 0 I1 SI2 SI1 VS2 VS1 VVS2 VVS1 IF I1 SI2 SI1 VS2 VS1 VVS2 VVS1 IF clarity Karl-Augustt, A. ggplot2 Cr´ eer et G´ erer vos graphiques dans R avec ggplot2 Introduction ` a ggplot2 Vos graphiques usuels Pour aller plus loin Les whiskers plots (boˆıtes ` a moustache) Diagrammes en bˆ atons Fair Good Very Good 5000 4000 3000 color 2000 D count 1000 E 0 F Premium Ideal G 5000 H 4000 I 3000 J 2000 1000 0 I1 SI2 SI1 VS2 VS1 VVS2VVS1 IF I1 SI2 SI1 VS2 VS1 VVS2VVS1 IF clarity Karl-Augustt, A. ggplot2 Cr´ eer et G´ erer vos graphiques dans R avec ggplot2 Introduction ` a ggplot2 Vos graphiques usuels Pour aller plus loin Les whiskers plots (boˆıtes ` a moustache) Diagrammes en bˆ atons Assumons : 25 24.22 > df 17.04 15 prop.Freq 1 2 3 4 5 6 7 8 22.73 20 Claret´ e prop.Freq I1 1.37 SI2 17.04 SI1 24.22 VS2 22.73 VS1 15.15 VVS2 9.39 VVS1 6.78 IF 3.32 15.15 10 9.39 6.78 5 >ggplot(df, aes(x=Claret´ e,y=prop.Freq)) +geom_bar(stat="identity") +geom_text(aes(label=prop.Freq), vjust=1.5, colour="white") 3.32 0 1.37 I1 IF SI1 SI2 VS1 VS2 VVS1 VVS2 Clareté ggplot2 Karl-Augustt, A. Cr´ eer et G´ erer vos graphiques dans R avec ggplot2 Introduction ` a ggplot2 Vos graphiques usuels Pour aller plus loin Les whiskers plots (boˆıtes ` a moustache) Diagrammes en bˆ atons IF I1 cut Assumons : VVS1 Fair Good count >ggplot(diamonds,aes(x=clarity,fill=cut)) +geom_bar()+coord_polar()+ theme(axis.text.y = element_blank(), axis.ticks=element_blank()) SI2 Very Good Premium VVS2 SI1 VS1 Ideal VS2 clarity ggplot2 Karl-Augustt, A. Cr´ eer et G´ erer vos graphiques dans R avec ggplot2 Introduction ` a ggplot2 Vos graphiques usuels Pour aller plus loin Les whiskers plots (boˆıtes ` a moustache) Diagrammes en bˆ atons Pauvres & Riches > ggplot(data3, aes(x=score)) +geom_histogram(fill="blue", colour="black",binwidth=15) + facet_grid(milieu ~ .) +xlab("Score des facteurs") + ylab("Effectifs") ggplot2 Karl-Augustt, A. Cr´ eer et G´ erer vos graphiques dans R avec ggplot2 Introduction ` a ggplot2 Vos graphiques usuels Pour aller plus loin Les whiskers plots (boˆıtes ` a moustache) Diagrammes en bˆ atons Output 2500 2000 Urbain 1500 1000 Effectifs 500 0 2500 2000 Rural 1500 1000 500 0 0 200 400 600 800 Score des facteurs ggplot2 Karl-Augustt, A. Cr´ eer et G´ erer vos graphiques dans R avec ggplot2 Introduction ` a ggplot2 Vos graphiques usuels Pour aller plus loin Les whiskers plots (boˆıtes ` a moustache) Diagrammes en bˆ atons > m <- ggplot(movies, aes(x=rating)) + geom_histogram(aes(fill = ..count..)) + geom_freqpoly() ggplot2 Karl-Augustt, A. Cr´ eer et G´ erer vos graphiques dans R avec ggplot2 Introduction ` a ggplot2 Vos graphiques usuels Pour aller plus loin Les whiskers plots (boˆıtes ` a moustache) Diagrammes en bˆ atons Output 5000 4000 count 5000 4000 count 3000 3000 2000 2000 1000 0 1000 0 2.5 5.0 rating Karl-Augustt, A. 7.5 10.0 ggplot2 Cr´ eer et G´ erer vos graphiques dans R avec ggplot2 Introduction ` a ggplot2 Vos graphiques usuels Pour aller plus loin Les whiskers plots (boˆıtes ` a moustache) Diagrammes en bˆ atons Pauvres & Riches >ggplot(data4, aes(x =Classes,y =effmenage, color=Classes))+ geom_violin(fill = "steelblue")+ geom_jitter(alpha = 0.3)+facet_grid(.~milieu) ggplot2 Karl-Augustt, A. Cr´ eer et G´ erer vos graphiques dans R avec ggplot2 Introduction ` a ggplot2 Vos graphiques usuels Pour aller plus loin Les whiskers plots (boˆıtes ` a moustache) Diagrammes en bˆ atons Densit´e de la population enquˆet´ee par m´enage Urbain Rural 30 Classes effmenage Très Pauvre Pauvre 20 Moyen Riche Très Riche 10 0 Très Pauvre Pauvre Moyen Riche Très Riche Très Pauvre Pauvre Moyen Riche Très Riche Classes ggplot2 Karl-Augustt, A. Cr´ eer et G´ erer vos graphiques dans R avec ggplot2 Introduction ` a ggplot2 Vos graphiques usuels Pour aller plus loin Les whiskers plots (boˆıtes ` a moustache) Diagrammes en bˆ atons Pauvres & Riches > ggplot(data5,aes(x=Classes,y =nomb_enf_nes, color=Classes))+geom_violin(fill = "steelblue") +geom_jitter(alpha = 0.3) +ylab("Nombre d'enfants n´ es dans un couple") ggplot2 Karl-Augustt, A. Cr´ eer et G´ erer vos graphiques dans R avec ggplot2 Introduction ` a ggplot2 Vos graphiques usuels Pour aller plus loin Les whiskers plots (boˆıtes ` a moustache) Diagrammes en bˆ atons Nombre d'enfants nés dans un couple Nombre d’enfants n´es dans un couple 15 Classes Très Pauvre 10 Pauvre Moyen Riche 5 Très Riche 0 Très Pauvre Pauvre Moyen Riche Très Riche Classes ggplot2 Karl-Augustt, A. Cr´ eer et G´ erer vos graphiques dans R avec ggplot2 Introduction ` a ggplot2 Vos graphiques usuels Pour aller plus loin 1 Introduction ` a ggplot2 2 Vos graphiques usuels Les whiskers plots (boˆıtes `a moustache) Diagrammes en bˆatons & histogrammes : amusez-vous ! Les Jeux d’esth´etiques 3 Pour aller plus loin Karl-Augustt, A. Cr´ eer et G´ erer vos graphiques dans R avec ggplot2 Introduction ` a ggplot2 Vos graphiques usuels Pour aller plus loin > z <- ggplot(mtcars, aes(wt, mpg, colour = factor(cyl))) +geom_point() ggplot2 Karl-Augustt, A. Cr´ eer et G´ erer vos graphiques dans R avec ggplot2 Introduction ` a ggplot2 Vos graphiques usuels Pour aller plus loin z+ theme(axis.ticks.length = unit(.85, ”cm”))+geom smooth(method=lm, se=FALSE, fullrange=TRUE) 35 30 25 factor(cyl) mpg 4 6 20 8 15 10 2 3 4 wt Karl-Augustt, A. 5 ggplot2 Cr´ eer et G´ erer vos graphiques dans R avec ggplot2 Introduction ` a ggplot2 Vos graphiques usuels Pour aller plus loin z+ theme(legend.position = ”bottom”) 35 30 mpg 25 20 15 10 2 3 4 5 wt factor(cyl) 4 6 8 ggplot2 Karl-Augustt, A. Cr´ eer et G´ erer vos graphiques dans R avec ggplot2 Introduction ` a ggplot2 Vos graphiques usuels Pour aller plus loin z +theme(legend.position = c(.8, .5)) 35 30 25 factor(cyl) mpg 4 6 20 8 15 10 2 3 4 wt Karl-Augustt, A. 5 ggplot2 Cr´ eer et G´ erer vos graphiques dans R avec ggplot2 Introduction ` a ggplot2 Vos graphiques usuels Pour aller plus loin z+theme(legend.background = element rect(colour = ”black”), legend.key = element rect(fill = ”yellow”)) 35 30 25 factor(cyl) mpg 4 6 20 8 15 10 2 3 4 wt Karl-Augustt, A. 5 ggplot2 Cr´ eer et G´ erer vos graphiques dans R avec ggplot2 Introduction ` a ggplot2 Vos graphiques usuels Pour aller plus loin z+theme bw()+theme(axis.title.x=element text(face=”italic”, colour=”darkred”, size=14)) 35 30 factor(cyl) 25 mpg 4 6 20 8 15 10 2 3 4 wt Karl-Augustt, A. 5 ggplot2 Cr´ eer et G´ erer vos graphiques dans R avec ggplot2 Introduction ` a ggplot2 Vos graphiques usuels Pour aller plus loin MERCI POUR VOTRE AIMABLE ATTENTION ! Karl-Augustt, A. Cr´ eer et G´ erer vos graphiques dans R avec ggplot2
© Copyright 2025 ExpyDoc