1 / 41

A la découverte du package ggplot2

BOGART Emilie SANCHEZ Mélodie SANCHEZ Sarah VIDAL Mathilde YOKESSA Maïmouna. A la découverte du package ggplot2. Module R 2013-2014 Professeur référent : Julie Josse. Généralités sur ggplot2. Package développé par Hadley Wickham (Rice University, Houston, USA)

neith
Download Presentation

A la découverte du package ggplot2

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. BOGART Emilie SANCHEZ Mélodie SANCHEZ Sarah VIDAL Mathilde YOKESSA Maïmouna A la découverte du package ggplot2 Module R 2013-2014 Professeur référent : Julie Josse

  2. Généralités sur ggplot2 • Package développépar Hadley Wickham (Rice University, Houston, USA) • première version : Juin 2007 • obéit `a une construction particulière suivant la grammaire graphique • permet une construction rapide de graphiques simples • réduction de la longueur des codes

  3. 2 fonctions de base : • qplot(x, y, data=data) : pour quick plot • rapide d’exécution mais applicable pour un seul jeu de données • ggplot(data, aes(x,y) ) • plus lent mais plus puissant • on inclut les paramètres esthétiques dans la fonction aes  on peut ajouter des layers avec un « + » Dans la suite, on va exposer la fonction ggplot

  4. Premier calque Il faut que le jeu de données soit de type data frame On ajoute les layers avec un « + » ggplot(data, aes(x,y) ) + layer1 + layer2+…+layer n base ensemble de calques

  5. Les layers de la fonction ggplot • Annotation • Fortify • Theme • Plot creation • Aesthetics • Others • Geoms • Statistics • Scales • Coordinatesystems • Faceting • Position adjustements

  6. Le layer geom_(x)  Créé pour les objets géométriques comme les points, lignes, polygones…

  7. Geom_point Le nuage de points d+geom_point() Trace le nuage de points d+geom_point(aes(colour = factor(cut))) Ajoute une couleur selon les modalités de cut d+geom_point(aes(shape = factor(cut))) Ajoute une forme selon les modalités cut d+geom_point(aes(colour = factor(color))) Ajoute une couleur selon les modalités de color

  8. Geom_line Relier les points entre eux data(economics) e=ggplot(economics, aes(x=date, y=pop)) e+ geom_line()

  9. Geom_line Relier les points entre eux m <- ggplot(mry, aes(x=year, y=number, group=rating)) m + geom_line() m <- ggplot(mry, aes(x=year, y=number, group=rating)) m + geom_line(aes(colour = rating)) On a compté le nombre de films par rating (=classement) en fonction des années

  10. Le layer stat_(x)  Créé différents types de graphiques statistiques

  11. Effectif/densité • Stat_bin: Histogramme des effectifs de chaque modalité de la variable qualitative ggplot(diamonds,aes(x=diamonds$color))+stat_bin(fill="yellow")

  12. Effectif/densité • Stat_density: Fonction de densité de la variable quantitative ggplot(diamonds,aes(x=diamonds$carat))+stat_density(fill="red")

  13. Courbe de tendance : Stat_smooth level=0.5 level=0.95 • Niveau de confiance : • ggplot(diamonds, aes(x=carat, y=price))+geom_point(aes(colour = factor(cut)))+ stat_smooth(method= "auto",fill="blue", colour="darkblue", size=2, level=0.5)

  14. Courbe de tendance : : Stat_smooth • Méthode d’ajustement : ggplot(diamonds, aes(x=log(carat), y=log(price)))+geom_point(aes(colour = factor(cut)))+ stat_smooth(method="lm", fill="blue", colour="darkblue", size=2, level=0.95)

  15. Boxplot :Stat_boxplot • Stat_boxplot : fait un boxplot pour chaque modalité de la variable qualitative ggplot(diamonds, aes(x=cut, y=price))+stat_boxplot(aes(colour=factor(cut)))

  16. Résumé des valeurs de Y : stat_summary • Moyenne:stat_summary(fun.data="mean_cl_normal", colour="red") • Ecart-type: stat_summary(fun.data="mean_sdl", colour="blue",size=1)

  17. Contour de y : Stat_contour • Stat_contour: trace des lignes de niveau ggplot(volcano3d, aes(x, y, z = z)) + stat_contour(binwidth = 5,color="brown")

  18. Stat_(x) = geom_(x)

  19. Le layer facet_(x)  divise le jeu de données en sous-ensembles et crée un graphique similaire pour chacun des sous-ensembles.

  20. Facet_grid + label_both • gauche<-ggplot(jambon,aes(globale,gras))+ geom_point()+ facet_grid(.~race,labeller = label_both)droite<-ggplot(jambon,aes(globale,gras))+ geom_point()+ facet_grid(race~.,labeller = label_both)oulabeller = label_bquote(race (x))

  21. Faced_wrap • ggplot(jambon,aes(globale,gras))+ geom_point()+ facet_wrap(~race)

  22. Le layer anotation_(x)  Permet d’ajouter du texte ou des formes sur les graphiques

  23. Annotate(« text » et « rect ») D4<-d3 + annotate("text",x=c(1, 3, 5), y=c(4000,4000,4000), label=c("clair","moyen","foncé"), colour="red", size=5) D4 + annotate("rect", xmin=3.5, xmax=4.5, ymin=9500, ymax=12000, alpha=0.3, colour="red")

  24. Annotate (« segment» et «pointrange ») D4<-d3+ annotate("segment", x=4.5, xend= 7.5, y=11000, yend=3000, colour="orange", size=3) d4+ annotate("pointrange",x=2, y=9800, ymin=7800, ymax=11800, colour="purple")

  25. Le layer coord_(x)  Permet différentes options sur le système de coordonnées des graphiques

  26. coord_cartesian • Utilisation : fixer des limites permet de « zoomer » sur une partie du graphe • Exemple : p <- qplot(disp, wt, data=mtcars)+ geom_smooth() p + coord_cartesian(xlim = c(325, 500)) • Remarque : autre layer permettant de zoomer : «scale »  p + scale_x_continuous(limits = c(325, 500))  Mais zoom différent

  27. Coord_cartesian() Scale ()

  28. coord_map • Library( mapproj ) • Exemple : world <- map_data("world") worldmap <- ggplot(world, aes(x=long, y=lat, group=group)) + geom_path() # coordonnées cartesiennes + coord_map() #projection de mercantor : plane + coord_map("ortho") #pole nord + coord_map("ortho", orientation=c(-90, 0, 0)) #pole sud

  29. Coordonnées cartésiennes geom_path() Projection de Mercantor coord_map() Projection orthogonale Pôle Nord coord_map("ortho") Pôle Sud orientation=c(-90, 0, 0))

  30. coord_fixed Permet de fixer l’échelle des axes grâce au ratio y/x Exemple : data(mtcars) qplot(mpg, wt, data = mtcars)+ coord_fixed(ratio = 1) qplot(mpg, wt, data = mtcars)+ coord_fixed(ratio = 3)

  31. y/x = 1 y/x = 3 1 unité de Y 3 unités de X

  32. coord_flip • passage d’une représentation horizontale à verticale et inversement • Exemple : data(diamonds) qplot(cut, price, data=diamonds, geom="boxplot")+ coord_flip() • Remarque : coord_flip = Facet_grid + label_both p<-ggplot(diamonds, aes(cut, price)) + geom_boxplot() p + coord_flip()

  33. coord_flip()

  34. coord_trans • Transforme les axes par la fonction voulue • Exemple : ea = exp(a) dfa = data.frame(a) dfa = cbind.data.frame(a,ea) qplot(a, ea, data = dfa, geom = "line") qplot(a, ea, data = dfa, geom = "line") + coord_trans(x = "identity", y= "log") ggplot(dfa, aes(a,ea)) + geom_line() ggplot(dfa, aes(a,ea)) + geom_line() + coord_trans(x = "identity", y= "exp")

  35. + coord_trans(x = "identity", y= "log")

  36. Le layer scales_(x) Permet de modifier, à partir d’une large gamme d’options, l’espace esthétique des graphiques (couleurs, formes, tailes, axes, legendes)

  37. Scale_alpha p <- qplot(mpg, cyl, data = mtcars,alpha=cyl) p + scale_alpha("number\nof\ncylinders") p <- qplot(mpg, cyl, data=mtcars, alpha = factor(cyl)))

  38. Scale_colour et scale_fil_continous 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") h <- qplot(x - y, data=dsub, geom="histogram", binwidth=0.01, fill=..count..) h + scale_fill_continuous(low="black", high="pink", limits=c(0,3100))

  39. Scale_x_datetime qplot(day30, y, data = df) last_plot() + scale_x_datetime(breaks = date_break ("2 days"), labels =date_format("%d/%m")) last_plot() + scale_x_datetime(breaks = date_breaks ("7 day"), minor_breaks = date_breaks("12 hour"))

  40. Conclusion • Facilité de construction de graphiques complexes • On peut facilement supprimer ou ajouter des layers • Langage intuitif • Utilisation de différents layers pour un même résultat • Plus aller plus loin … • http://docs.ggplot2.org/current/ ggmag + ggplot2

  41. Merci de votre attention !

More Related