Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Production de graphiques avec R et ggplot2

Etienne
March 07, 2013

Production de graphiques avec R et ggplot2

votre premier graphique dans R › nuagedepointsdebase
› Défi1
› la grammaires des graphiques
› graphiquesplusavancés
› lesélémentsgraphiquesdisponibles › Défi2
› sauvegarder ses graphiques
› finitions de vos graphiques (préparation à la
publication)
› thèmes(themes)
› nous vous aidons à mettre vos données dans un superbe graphique

Etienne

March 07, 2013
Tweet

More Decks by Etienne

Other Decks in Science

Transcript

  1. Et vous? ›  Avez-vous déjà créé un graphique? ›  Avec

    quel type de données? ›  Quel type de graphique? ›  Dans quel logiciel? ›  Avez-vous déjà produit des graphiques avec R? ›  avec ggplot?
  2. Suivez nous ›  Code disponible sur ›  http://github.com/zerotorhero/ Intro_R_CSBQ_Francais › 

    Recommandation ›  créez votre propre script ›  vous référer à notre script qu’en cas d’extrême besoin ›  ggplot est aussi hébergé sur github ›  https://github.com/hadley/ggplot2
  3. Agenda ›  votre premier graphique dans R ›  nuage de

    points de base ›  Défi 1 ›  la grammaires des graphiques ›  graphiques plus avancés ›  les éléments graphiques disponibles ›  Défi 2 ›  sauvegarder ses graphiques ›  finitions de vos graphiques (préparation à la publication) ›  thèmes (themes) ›  nous vous aidons à mettre vos données dans un superbe graphique
  4. ggplot ›  observer l’ensemble de données «iris» ›  ?iris! › 

    head(iris)! ›  str(iris)! ›  names(iris)! Les données que nous allons utiliser
  5. ggplot ›  la fonction graphique de base: “qplot” (quick plot)

    ›  ?qplot ›  arguments! ›  data! ›  x! ›  y! ›  …! Nuage de points de base
  6. ggplot ›  ?qplot ›  other arguments! ›  xlab! ›  ylab!

    ›  main! ›  log! ›  …! Un nuage de points un peu plus sophistiqué
  7. ggplot Défi 1 ›  produire un graphique de base avec

    l’ensemble de données «CO2»! ›  CO2! ›  ?CO2! ›  BOD! ›  data()!
  8. 6 H. WICKHAM Figure 1. Graphics objects produced by (from

    left to right): geometric objects, scales and coordinate system, plot annotations. Figure 2. The final graphic, produced by combining the pieces in Figure 1. ggplot 1.  comme les mots d’une phrase, un graphiques est composé d’élément (couches: layers) qu’il faut agencer en suivant les règles d’une grammaire ›  éléments ›  esthétiques (aes) ›  transformation ›  géométriques (geom) ›  axes (coordinate system) ›  échelles (scales) La grammaires des graphiques(gg)
  9. ggplot La grammaires des graphiques(gg) correspondances esthétiques (aes) rendent les

    données visibles et relient les démentions/variables à une valeur visible ›  x,y : la position le long de l'axe x et y ›  colour: la coleur du point ›  group: regroupement des valeurs ›  shape: le symbole utilisé ›  linetype: le type de ligne ›  size: la grandeur du point ou l’épaisseur de la ligne ›  alpha: le niveau de transparence
  10. ggplot ›  objet géométrique (geoms) ›  point: nuage de points

    ›  line: tracé linéaire, où les lignes relient en ordre croissant de la valeur de x ›  path: tracé linéaire, où les lignes relient les valeurs dans l’ordre qu’elles apparaisse dans la trame de données ›  boxplot: ›  bar: graphiques à colonne ›  histogram: histogramme (choix par défaut lorsqu’une seule dimension/variable est donnée) La grammaires des graphiques(gg)
  11. ggplot 2. comme changer un mot dans une phrase, changer

    un élément produit un nouveau graphique ›  il n’est pas nécessaire de réitérer tous les autres éléments) ›  eg. il suffit de changer le système de coordonnées pour obtenir un tout nouveau graphique! La grammaires des graphiques(gg) A LAYERED GRAMMAR OF GRAPHICS 23 Figure 16. Bar chart (left) and equivalent Coxcomb plot (right) of clarity distribution. The Coxcomb plot is a bar chart in polar coordinates. Note that the categories abut in the Coxcomb, but are separated in the bar chart: this is an example of a graphical convention that differs in different coordinate systems.
  12. ggplot 1.  créer un objet graphique simple ›  plot.object<-qplot()! 2. 

    ajouter des éléments/de la complexité ›  plot.object<-plot.object+layer()! ›  repeat step 2 until satisfied! 3.  imprimer l’objet à l’écran ou vers un dispositif graphique (eg. pdf) ›  print(plot.object)! Fonctionnement
  13. ggplot Graphique dans un objet dans R basic.plot<-qplot(data=iris,! ! !

    !x=Sepal.Length,! ! ! !xlab="Sepal Width (mm)",! ! ! !y=Sepal.Width,! ! ! !ylab="Sepal Length (mm)",! ! ! !main="Sepal dimensions”)! ! print(basic.plot)!
  14. ggplot Nuage de points avec encodage par couleurs, forme et

    la transparence ›  Ajouter un élément esthétique basic.plot<-qplot(data=iris,! x=Sepal.Length,! xlab="Sepal Width (mm)",! y=Sepal.Width,! ylab="Sepal Length (mm)",! main="Sepal dimensions",! colour=Species,! shape=Species,! alpha=I(0.5))! ! print(basic.p! ! ! !print(basic.plot)!
  15. ggplot Nuage de points avec régression linéaire ›  Ajouter un

    élément géométrique (geom) plot.with.linear.smooth<-basic.plot+! ! ! !geom_smooth(method="lm", se=F)! print(plot.with.linear.smooth)!
  16. ggplot Changer ou ajouter des éléments géométriques (geom) print(categorical.plot)! !

    print(categorical.plot+! ! !geom_boxplot())! ! categorical.plot<-qplot(data=iris,! x=Species,! !y=Sepal.Width,! !geom=c(“boxplot”))! print(categorical.plot) !
  17. ggplot Défi 2 ›  produire un graphique coloré incluant des

    lignes représentant des régressions linéaires avec des données intégrées à R! ›  CO2! ›  ?CO2! ›  msleep! ›  ?msleep! ›  OrchardSprays! ›  data()!
  18. ggplot Problème avec les regroupement de données (Groups) ›  ajoutez

    un élément géométrique: geom (line) print(CO2.plot+geom_line())!
  19. Éléments disponibles ggplot Geoms Geoms, short for geometric objects, describe

    the type of plot you will produce. geom_abline Line specified by slope and intercept. geom_area Area plot. geom_bar Bars, rectangles with bases on x-axis geom_bin2d Add heatmap of 2d bin counts. geom_blank Blank, draws nothing. geom_boxplot Box and whiskers plot. geom_contour Display contours of a 3d surface in 2d. geom_crossbar Hollow bar with middle indicated by horizontal line. geom_density Display a smooth density estimate. geom_density2d Contours from a 2d density estimate. geom_dotplot Dot plot geom_errorbar Error bars. geom_errorbarh Horizontal error bars geom_freqpoly Frequency polygon. geom_hex Hexagon bining. geom_histogram Histogram geom_hline Horizontal line. geom_jitter Points, jittered to reduce overplotting. geom_line Connect observations, ordered by x value. geom_linerange An interval represented by a vertical line. geom_map Polygons from a reference map. geom_path Connect observations in original order geom_point Points, as for a scatterplot geom_pointrange Depends: stats, methods Imports: plyr, digest, grid, gtable, reshape2, scales, proto, MASS Suggests: quantreg, Hmisc, mapproj, maps, hexbin, maptools, multcomp, nlme, testthat Extends: http://docs.ggplot2.org! ! une autre source d’aide:! help(package=ggplot2)!
  20. Défi 3 ggplot ›  Explorer «geoms» et d’autres éléments graphiques

    avec les données que vous avez déjà utilisées ›  msleep! ›  ?msleep! ›  OrchardSprays! ›  data()!
  21. ggplot Sauvegarder un graphique ›  dans un script pdf(“./plots/todays_plots.pdf”) print(basic.plot)

    print(plot.with.linear.smooth) print(categorical.plot) print(CO2.plot)! graphics.off()! ! ›  d’autres méthodes ›  ?ggsave ›  ?jpeg
  22. ggplot Finition: les échelles (scales) CO2.plot+scale_colour_manual(values=c("nonchilled"="red",! ! ! ! !

    !"chilled"="blue"))! ! CO2.plot+! scale_y_continuous(name = "CO2 uptake rate",! !breaks = seq(5,50, by= 10),! !labels = seq(5,50, by= 10), trans="log10") ! ! ! aesthetic type d’échelle fonction composée d’éléments relié par _
  23. ggplot Travailler avec vos données ›  Partez d’ici avec au

    moins un graphique de vos données ›  Vous n’avez pas de données ›  Touvez en: ›  google ›  http://datadryad.org ›  Créez en: ›  Faites un sondage de vos voisins ›  Sauvegarder vos graphiques dans un PDF
  24. ggplot Finition : les thèmes (themes) ›  theme_set(theme()) ›  ou

    plot+theme() ›  thèmes disponibles ›  theme_bw() ›  theme_grey() ›  modifiez les thèmes ›  mytheme <- theme_grey() + theme(plot.title = element_text(colour = "red")) ›  p + mytheme ›  Un jour les périodiques scientifique auront peut- être leur propre thème?
  25. ggplot fonction graphique de base de R ›  qplot n’est

    pas la seule fonction ›  ?plot ›  plusieurs type d’objet on des graphiques établis par défaut ›  grammaire similaire à qplot plot(iris) lm.SR <- lm(sr ~ pop15 + pop75 + dpi + ddpi, data = LifeCycleSavings) plot(lm.SR)
  26. Remerciements ›  Reshape, plyr and ggplot2 sont hébergé sur GitHub

    par: ›  Hadley Wickham ›  had.co.nz Wickham, H. (2011). "The split-apply- combine strategy for data analysis." Journal of Statis. Wickham, H. (2010). "A layered grammar of graphics." Journal of Computational and Graphical Statistics 19(1): 3-28.