12.07.2015 Views

Optimiser ses graphiques avec R

Optimiser ses graphiques avec R

Optimiser ses graphiques avec R

SHOW MORE
SHOW LESS
  • No tags were found...

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Typologie Base ggplot2 Références1 Typologie2 Base3 ggplot24 RéférencesJ SueurGraphiques


Typologie Base ggplot2 RéférencesOutline1 Typologie2 Base3 ggplot24 RéférencesJ SueurGraphiques


Typologie Base ggplot2 RéférencesTypologie – FamillesQuatre familles de <strong>graphiques</strong> issus de la base ou de packagesspécifiques :base (Ross Ihaka)package grids (Paul Murrel)package lattice (Deepayan Sarkar)package ggplot2 (Hadley Wickman)J SueurGraphiques


Typologie Base ggplot2 RéférencesOutline1 Typologie2 Base3 ggplot24 RéférencesJ SueurGraphiques


Typologie Base ggplot2 RéférencesBase – Fonctions de bas-niveaupoints, traits, surfaces (rectangles, polygones, cercles)lignes, courbes, segments, flèchestitres, légendes, étiquettesJ SueurGraphiques


Typologie Base ggplot2 RéférencesBase – Fonctions de paramétragecouleurstaille, police, orientationéchellesmargessuperpositionetcJ SueurGraphiques


Typologie Base ggplot2 RéférencesBase – Nombre de packagesdatavers count date1 1.30 110 2001-06-212 1.40 129 2001-12-173 1.50 161 2002-06-124 1.70 219 2003-05-255 1.80 273 2003-11-166 1.90 357 2004-06-057 2.00 406 2004-10-128 2.10 548 2005-06-189 2.20 647 2005-12-1610 2.30 739 2006-05-3111 2.40 911 2006-12-1212 2.50 1000 2007-04-1213 2.60 1300 2007-11-1614 2.70 1495 2008-03-1815 2.80 1614 2008-10-2016 2.90 1907 2009-04-1717 2.10 2008 2009-10-2618 2.12 2952 2011-04-06J SueurGraphiques


Typologie Base ggplot2 RéférencesBase – Exempleplot(date, count)count0 500 1000 1500 2000 2500 3000● ● ●●●● ● ●●●● ● ●●●●●●2002 2004 2006 2008 2010dateJ SueurGraphiques


Typologie Base ggplot2 RéférencesBase – Exemplepar(bg = "darkgrey", fg = "white", lwd = 2)plot(date, count, pch = 20, cex = 2, col = "white", xlab = "Année",ylab = "Nombre", main = "Nombre de packages sur le CRAN")points(date[18], count[18], pch = 20, col = "yellow",cex = 2)text(date[18], count[18], pos = 2, label = "6 Avril 2011",col = "yellow")lines(lowess(date, count), col = 2, lwd = 2)J SueurGraphiques


Typologie Base ggplot2 RéférencesBase – ExempleNombre de packages sur le CRANNombre0 500 1000 1500 2000 2500 3000● ● ●● ● ● ● ● ● ● ● ● ●6 Avril 2011 ●● ●● ●2002 2004 2006 2008 2010AnnéeJ SueurGraphiques


Typologie Base ggplot2 RéférencesBase – Des exemples par centaineshttp ://addictedtor.free.fr/<strong>graphiques</strong>/index.phpJ SueurGraphiques


Typologie Base ggplot2 RéférencesOutline1 Typologie2 Base3 ggplot24 RéférencesJ SueurGraphiques


Typologie Base ggplot2 Référencesggplot2 – Historiquedéveloppé par Hadley Wickham (Rice University,Houston, USA)dépend principalement des packages reshape etplyrpremière version : Juin 2007J SueurGraphiques


Typologie Base ggplot2 Référencesggplot2 – Principes générauxobéit à de nouveaux principes esthétiquesJ SueurGraphiques


Typologie Base ggplot2 Référencesggplot2 – Principes générauxobéit à de nouveaux principes esthétiquesobéit à une construction particulière suivant la grammaire graphiquedéveloppée par Wilkinson en 2005J SueurGraphiques


Typologie Base ggplot2 Référencesggplot2 – Principes générauxobéit à de nouveaux principes esthétiquesobéit à une construction particulière suivant la grammaire graphiquedéveloppée par Wilkinson en 2005permet une construction rapide de <strong>graphiques</strong> simplesJ SueurGraphiques


Typologie Base ggplot2 Référencesggplot2 – Principes générauxobéit à de nouveaux principes esthétiquesobéit à une construction particulière suivant la grammaire graphiquedéveloppée par Wilkinson en 2005permet une construction rapide de <strong>graphiques</strong> simplesréduction (considérable) de la longueur des codesJ SueurGraphiques


Typologie Base ggplot2 Référencesggplot2 – Principes générauxobéit à de nouveaux principes esthétiquesobéit à une construction particulière suivant la grammaire graphiquedéveloppée par Wilkinson en 2005permet une construction rapide de <strong>graphiques</strong> simplesréduction (considérable) de la longueur des codespermet la création de nouvelles familles de <strong>graphiques</strong>J SueurGraphiques


Typologie Base ggplot2 Référencesggplot2 – Principes générauxobéit à de nouveaux principes esthétiquesobéit à une construction particulière suivant la grammaire graphiquedéveloppée par Wilkinson en 2005permet une construction rapide de <strong>graphiques</strong> simplesréduction (considérable) de la longueur des codespermet la création de nouvelles familles de <strong>graphiques</strong>Nouveau dialecte à apprendreJ SueurGraphiques


Typologie Base ggplot2 Référencesggplot2 – Les calques ou layersggplot2 créé des layers (calques) qui peuvent s’utiliser comme desobjets (assignation possible).Voici les principaux layers :data → données brutesmapping → projection graphiquegeom → objets géométriques (points, lignes, polygones, etc.)stat → transformation statistique (histogramme, modèle, etc.)scale → espace esthétique (couleurs, formes, tailes, axes, légendes)coord → système de coordonnées (axes, grilles)facet → divisionJ SueurGraphiques


Typologie Base ggplot2 Référencesggplot2 – Nombre de packagesplot


Typologie Base ggplot2 Référencesggplot2 – Fonctions de baseggplot2 a deux fonctions <strong>graphiques</strong> de base :- qplot() pour quick plotrapide mais simple (pour un seul jeu de données et une seuleméthode esthétique)principe :qplot(x, y, data=data)- ggplot()lent mais plus puissant, ajout de layers <strong>avec</strong> +principe :gplot(data, aes(x, y)) + layersRemarqueOn peut obtenir les mêmes résultats <strong>avec</strong> les deux fonctions (équivalence)J SueurGraphiques


Typologie Base ggplot2 Référencesggplot2 – Objets géométriques (geom)point → scatterplot (défaut si 2 dimensions)smooth → ajoute une courbe de tendance (lissage) à un scatterplotboxplot → boîte à moustachesjitter → giguepath → chemins entre des points (∀ direction)line → lignes entre des points (de gauche à droite)histogram → histogramme (défaut si 1 dimension)freqpoly → polygone fréquentieldensity → courbe de densitébar → bâtonsJ SueurGraphiques


Typologie Base ggplot2 Référencesggplot2 – Catégorisation par la couleurhead(diamonds)carat cut color clarity depth table price x y z13998 1.01 Ideal G SI1 62.6 56 5698 6.37 6.41 4.00301 0.77 Ideal I VS1 61.5 59 2798 5.87 5.91 3.626816 1.01 Fair D SI1 66.3 55 4118 6.22 6.17 4.1148416 0.73 Premium F SI2 60.2 59 1971 5.87 5.82 3.5220812 1.04 Premium G IF 61.3 58 9039 6.52 6.43 3.9736091 0.32 Very Good F VVS1 61.9 59 926 4.34 4.39 2.70J SueurGraphiques


Typologie Base ggplot2 Référencesggplot2 – Catégorisation par la couleurqplot(carat, price, data = diamonds, colour = color)●15000●10000●●●●●●color● D● Eprice5000●●●●●●●●●●●●● ● ●●●●●● ●●●●● ●● ●● ●●●●●● ●●●●●●●●●●●●●●●FGHIJ0.5 1.0 1.5 2.0 2.5caratJ SueurGraphiques


Typologie Base ggplot2 Référencesggplot2 – Catégorisation par la couleurqplot(carat, data = diamonds, geom = "histogram", fill = color)15..count..105colorDEFGHIJ00.5 1.0 1.5 2.0 2.5caratJ SueurGraphiques


Typologie Base ggplot2 Référencesggplot2 – Catégorisation par la couleurqplot(carat, data = diamonds, geom = "density", fill = color,alpha = I(1/5))1.41.2..density..1.00.80.60.4colorDEFGHIJ0.20.00.5 1.0 1.5 2.0 2.5caratJ SueurGraphiques


Typologie Base ggplot2 Référencesggplot2 – DivisionPrincipe : diviser le jeu de données en sous-ensembles et créer ungraphique similaire pour chacun sous-ensemble.Syntaxe : argument facets de qplot selon facteur en ligne ∼facteur en colonnefacets = facteur ∼ . produira un graphique multiple encolonnesfacets = . ∼ facteur produira un graphique multiple en lignesJ SueurGraphiques


Typologie Base ggplot2 Référencesggplot2 – Divisionqplot(carat, data = diamonds, facets = color ~ ., geom = "histogram")..count..65432106543210654321065432106543210654321065432100.5 1.0 1.5 2.0 2.5caratD E F G H I JJ SueurGraphiques


Typologie Base ggplot2 Référencesggplot2 – Divisiondata(mpg)qplot(displ, hwy, data = mpg, geom = c("point", "smooth"),facets = . ~ year)19992008●40●●hwy3530252015●● ●●●●●●● ●●●●● ● ●●●●●● ● ● ●●●● ●●●●●●●●●●●●●●●● ●●●●●●●●● ●● ●●● ●●●● ● ●●●●●●●●●●●●●●●●●● ● ● ●● ● ● ●●●● ●● ● ●● ● ●●● ● ● ●● ●●●●●●●● ● ● ●●●●●●● ●●●●● ●●● ● ●●● ●●●2 3 4 5 6 7displ2 3 4 5 6 7J SueurGraphiques


Typologie Base ggplot2 Référencesggplot2 – Argumentsggplot permet, en association <strong>avec</strong> de produire des graphes pluscomplexes.ggplot a deux arguments :- data (données dans un data.frame)- aesthetic mapping (paramètres esthétiques de la projection, doiventêtre inclus dans la fonction aes())J SueurGraphiques


Typologie Base ggplot2 Référencesggplot2 – CalquesVoici les principaux layers :- geom_XXX() (par example : geom_point(), geom_histogramm(),etc.)- stat_XXX() (par exemple : stat_bin(), stat_smooth(), etc.)- scale_XXX() (par exemple : scale_x_continuous(),scale_x_log10(), etc.)- facet_XXX() (par exemple : facet_grid(), facet_wrap(), etc.)- coord_XXX() (par exemple : coord_flip(), coord_trans(), etc.)J SueurGraphiques


Typologie Base ggplot2 Référencesggplot2 – Premier calquep


Typologie Base ggplot2 Référencesggplot2 – Exemple d’objet géométriquep + geom_point() + geom_smooth(method = "lm")●40●●35●●●●●30●●●●●●●●●● ●●●●●factor(cyl)● 4hwy25●●●●●●●●●●●●●● ●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●● 5● 6● 8●●●●●20●●●●●●●●●● ●●●●●●●●●●●● ●●●●●●●●●●15●●●● ●● ●● ● ●●●●●●2 3 4 5 6 7displJ SueurGraphiques


Typologie Base ggplot2 Référencesggplot2 – Systèmes de coordonnéesp


Typologie Base ggplot2 Référencesggplot2 – Systèmes de coordonnéesp + coord_polar(theta = "y")0/1008020cutFair..count..GoodVery GoodPremiumIdeal6040J SueurGraphiques


Typologie Base ggplot2 Référencesggplot2 – Systèmes de coordonnéesp


Typologie Base ggplot2 Référencesggplot2 – Systèmes de coordonnéesp + coord_flip()Ideal●●●●●Premium●●●●cutVery GoodGoodFair5000 10000 15000priceJ SueurGraphiques


Typologie Base ggplot2 Référencesggplot2 – ThèmesLe thème contrôle l’apparence globale (police, couleurs).Il y a deux thèmes par défaut :- theme_gray() : fond gris, grille blanche- theme_bw() : fond blanc, grille griseJ SueurGraphiques


Typologie Base ggplot2 Référencesggplot2 – ThèmesIl y a deux manières de choisir le thème par défaut- globalement <strong>avec</strong> theme_set(theme_XXX).- localement comme un layer <strong>avec</strong> égalementtheme_set(theme_XXX)J SueurGraphiques


Typologie Base ggplot2 Référencesggplot2 – ThèmesModification globale pour tous les <strong>graphiques</strong> suivants en utilisanttheme_update :theme_update(plot.background = theme_rect(fill = "yellow"))data(movies)qplot(rating, data = movies, binwidth = 1)1500010000..count..500000 2 4 6 8 10ratingJ Sueur Graphiques


Typologie Base ggplot2 Référencesggplot2 – Exemplespar Michael Lavine (UMass Amherst)https ://github.com/hadley/ggplot2/wikiJ SueurGraphiques


Typologie Base ggplot2 Référencesggplot2 – Exemplespar Claudia Beleites (TU Dresden & Uni. Trieste)https ://github.com/hadley/ggplot2/wikiJ SueurGraphiques


Typologie Base ggplot2 Référencesggplot2 – Exemplespar David Kahle (Rice University)https ://github.com/hadley/ggplot2/wikiJ Sueur Graphiques


Typologie Base ggplot2 Référencesggplot2 – Exemplespar Christian Kramer (NIBR Basel)https ://github.com/hadley/ggplot2/wikiJ SueurGraphiques


Typologie Base ggplot2 Référencesggplot2 – Exemplespar Jean-Olivier Irisson (JiHO)https ://github.com/hadley/ggplot2/wikiJ SueurGraphiques


Typologie Base ggplot2 Référencesggplot2 – Exemplespar Stefan Muthershttps ://github.com/hadley/ggplot2/wikiJ Sueur Graphiques


Typologie Base ggplot2 Référencesggplot2 – Exemplespar Heike Hofmann (Iowa State University)https ://github.com/hadley/ggplot2/wikiJ SueurGraphiques


Typologie Base ggplot2 Référencesggplot2 – ExemplesJ SueurGraphiquespar learnrhttp ://learnr.wordpress.com/


Typologie Base ggplot2 Référencesggplot2 – Exemplespar Chttp ://www.rbloggers.com/analyzegold-demand-andinvestments-using-r/J SueurGraphiques


Typologie Base ggplot2 Référencesggplot2 – Exemplespar Winston Changhttp ://wiki.stdout.org/rcookbookJ SueurGraphiques


Typologie Base ggplot2 RéférencesOutline1 Typologie2 Base3 ggplot24 RéférencesJ SueurGraphiques


Typologie Base ggplot2 RéférencesRéférencesGraphiques de la base :Murrell, P. 2005. – R graphics. Chapman & hall / CRC.Page web de P. Murrell :http ://www.stat.auckland.ac.nz/ paul/RGraphics/rgraphics.htmlhttp ://addictedtor.free.fr/<strong>graphiques</strong>/index.phpGraphic task viewhttp ://cran.at.r-project.org/web/views/Graphics.htmlGraphical model task viewhttp ://cran.at.r-project.org/web/views/gR.htmlGraphiques de ggplot2 :Wilkinson, L. (2005) – The grammar of graphics. Statistics andComputing. SpringerWickman, H. 2009 – ggplot2. Elegant graphics for dataanalysis. Springer.Pageweb : http ://had.co.nz/ggplot2/Page Git : https ://github.com/hadley/ggplot2Groupe de discussion :http ://groups.google.com/group/ggplot2Application web : http ://yeroon.net/ggplot2/J SueurGraphiques

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!