Optimiser ses graphiques avec R
Optimiser ses graphiques avec R
Optimiser ses graphiques avec R
- 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