Data Science,
Séance 7 : Visualisation avec ggplot

Etienne Côme

21 novembre 2018

Visualisation ?

“Transformation of the symbolic into the geometric”
[McCormick et al. 1987]

“… finding the artificial memory that best supports our natural means of perception.”
[Bertin 1967]

“The use of computer-generated, interactive, visual representations of data to amplify cognition.”
[Card, Mackinlay, & Shneiderman 1999]

Pourquoi visualiser ?

Intégrer l’humain dans la boucle

  • Répondre a des questions ou trouver des questions ?
  • Prendre des décisions
  • Remettre les données dans leur contexte
  • Amplifier la mémoire
  • Calcul graphique
  • Trouver des schémas, des patterns
  • Présenter des arguments
  • Inspirer

Pourquoi visualiser ?

Analyser :

  • Développer et critiquer des hypothèses
  • Découvrir des erreurs
  • Trouver des patterns

Communiquer

  • Partager et convaincre
  • Collaborer et réviser

Anscombe quartet

g mean_x mean_y sd_x sd_y
1 9 7.500909 3.316625 2.031568
2 9 7.500909 3.316625 2.031657
3 9 7.500000 3.316625 2.030424
4 9 7.500909 3.316625 2.030578

Anscombe quartet

Cholera map (John Snow)

Visualiser

=

encoder dans des

variables graphiques

les données

Variables graphiques

Bertin Jacques, Sémiologie graphique, Paris, Mouton/Gauthier-Villars, 1967.

Variables graphiques

Bertin Jacques, Sémiologie graphique, Paris, Mouton/Gauthier-Villars, 1967.

Marques // variables graphiques

Marques :

Eléments de base du graphiques

Variables graphique (chanels) :

Ce qui va varier en fonctions des données

Variables graphiques, marques

Variables graphiques, marques

Toutes les variables graphiques ne se valent pas.

Variables graphiques, marques

Choisir une variable graphique adapté aux type de la variable représenté

Variables graphiques, marques

Ce qui est intéressant n’est pas toujours ce que l’on a au départ.

pré-attentive processing

Combien de 3 ?

1281768756138976546984506985604982826762 9809858458224509856458945098450980943585 9091030209905959595772564675050678904567 8845789809821677654876364908560912949686

pré-attentive processing

Combien de 3 ?

1281768756138976546984506985604982826762 9809858458224509856458945098450980943585 9091030209905959595772564675050678904567 8845789809821677654876364908560912949686

pré-attentive processing

pré-attentive processing

pré-attentive processing

Questions ? type des variables ?

continues ? discrètes ? ordonnées ? temporelles ? spatiales ?

Des catégories

et

une quantité pour chaque catégorie

le bar chart

le bar chart

dataset mpg

  • manufacturer.

  • model.

  • displ. engine displacement, in litres

le bar chart

Ordre ?

Horizontal ?

La ligne :

1 variable numérique

en fonction du

temps

Données Vélib’ aggrégées :

Ordre naturel imposé par le temps

Ordre naturel imposé par le temps

Aspect ratio

Aspect ratio

Aspect ratio

Aspect ratio, 45°

Heuristic: use the aspect ratio that results in an average line slope of 45°.

Cleveland, William S., Marylyn E. McGill, and Robert McGill. “The shape parameter of a two-variable graph.” Journal of the American Statistical Association 83.402 (1988): 289-300.

Aire + Echelle

Changement de point de vue

<spanclass=“green”> 1 variable numérique

en fonction du

temps

+ catégories

Données Vélib par stations

Line charts superposés

Small multiples

2 variables numériques

+ catégories

Scatter plot + colors

Scatter plot + symbols

3 variables numériques (dont une >0)

+ catégories

Scatter plot + couleur + taille

Scatter plot + couleur + taille ! echelles

Taille des cercles : échelle aire ou rayon ?

Rayon

Aire

Principes :

Eviter de mentir,
Lie Factor

\[\textrm{Lie factor} = \frac{\textrm{visual effect size}}{\textrm{data effect size}}\]

Lie factor :

\[\textrm{data effect size} = \frac{27.5 - 18}{18} \times 100 = 53 \%\]

Edward Tufte, The Visual Display of Quantitative Information, Cheshire, CT, Graphics Press, 2001, 2e éd. (1re éd. 1983)

Lie factor :

\[\textrm{visual effect size} = \frac{5.3 -0.6}{0.6} \times 100 = 783 \%\]

Edward Tufte, The Visual Display of Quantitative Information, Cheshire, CT, Graphics Press, 2001, 2e éd. (1re éd. 1983)

Lie factor :

\[\textrm{Lie factor} = \frac{783}{53} = 14.8\]

Edward Tufte, The Visual Display of Quantitative Information, Cheshire, CT, Graphics Press, 2001, 2e éd. (1re éd. 1983)

Lie factor : 9.4

Edward Tufte, The Visual Display of Quantitative Information, Cheshire, CT, Graphics Press, 2001, 2e éd. (1re éd. 1983)

Sachant que l’aire de la tranche “apple”" (en vert) est proportionelle à \(2.22\,cm^2\) et celle correspondant à rim (en bleue) est proportionelle à \(2.96\,cm^2\) calculer le lying factor ?

Perception

\[S = I^p\]

Principes :

Augmenter la densité de données

\[\textrm{graph data density} = \frac{\textrm{number of entries in data matrix}}{\textrm{area of data display}}\]

Data density :

Eviter les graphique à faible densité

Edward Tufte, The Visual Display of Quantitative Information, Cheshire, CT, Graphics Press, 2001, 2e éd. (1re éd. 1983)

Data density :

Meilleure densité de donnée

Edward Tufte, The Visual Display of Quantitative Information, Cheshire, CT, Graphics Press, 2001, 2e éd. (1re éd. 1983)

##Bonnes pratiques :
  • éviter de mentir !
  • faire des graphiques riches
  • avec des encodages adaptés
  • de bonnes échelles, (!couleurs, !aires)
  • des axes labelisés
  • ordre des facteurs
  • aspect ratio
  • format d’enregistrements pdf, svg // png,jpg

ggplot

gg = grammar of graphics

  • “The Grammar of Graphics” (Wilkinson, Annand and Grossman, 2005)
  • grammaire → même type de description pour des graphique différents

ggplot

Composants de la grammaires :

  • data and aesthetic mappings,
    ex : f(data) → x position, y position, size, shape, color
  • geometric objects,
    ex : points, lines, bars, texts
  • scales,
    ex : f([0, 100]) → [0, 5] px
  • facet specification,
    ex : segmentation des données suivant un ou plusieurs facteurs
  • statistical transformations,
    ex : moyenne, comptage, régression
  • the coordinate system.
  • ggplot

    Création d’un graphique :

  • ajout successif de layers (calques)
  • définissant un mapping des données vers leurs représentation
  • (+ optionel) définition de transformations statistique
  • (+ optionel) définition des échelles
  • (+ optionel) gestion du thème des titre …

    ! Données toujours sous forme de data.frame bien formatées

  • ggplot, géométries

    Création d’un graphique :

  • ajout successif de layers (calques)
    +geom_line()
  • définissant un mapping des données vers leurs représentation
    aes(x=a,y=b,...)

    Exemple

    
    ggplot(mpg)+
      geom_point(aes(x=cty,y=hwy,color=manufacturer,shape=factor(cyl)))
    ggplot(mpg,aes(x=cty,y=hwy,color=manufacturer,shape=factor(cyl)))+
      geom_jitter()
    

  • ggplot

    ggplot

    ggplot

    ggplot

    ##ggplot, échelles

    Création d’un graphique :

  • ajout successif de layers (calques)
    +geom_line()
  • définissant un mapping des données vers leurs représentation
    aes(x=a,y=b,...)
  • en fixant les échelles
    scale_fill_brewer(palette=3,type="qual")
    scale_x_continuous(limits=c(0,45),breaks=seq(0,45,2))
  • ggplot, échelles

    Echelles
    de
    couleurs

    Echelle de couleurs

    http://colorbrewer2.org/

    ggplot, facettes

    Création d’un graphique :

  • ajout successif de layers (calques)
    +geom_line()
  • définissant un mapping des données vers leurs représentation
    aes(x=a,y=b,...)
  • en fixant les échelles
    scale_fill_brewer(palette=3,type="qual")
    scale_x_continuous(limits=c(0,45),breaks=seq(0,45,2))
  • en créant des facettes
    facet_grid(. ~ cyl)
  • ggplot, facettes

    ggplot, stats

    Création d’un graphique :

  • ajout successif de layers (calques)
    +geom_line()
  • définissant un mapping des données vers leurs représentation
    aes(x=a,y=b,...)
  • en fixant les échelles
    scale_fill_brewer(palette=3,type="qual")
    scale_x_continuous(limits=c(0,45),breaks=seq(0,45,2))
  • en ajoutant des stats
    stat_density2d()
  • ggplot

    ggplot

    ggplot

    Exercices

    Reprendre les échelles, légendes de cette figures

    Exercices

    Reprendre les échelles, légendes de cette figures

    Exercices

    Reproduire ce graphique (Les données Iris sont déjà chargées)

    Exercices

    Reproduire ce graphique (Les données mtcars sont déjà chargées) ! modifier le theme du graphique ?theme

    Exercices

    Reproduire ce graphique

    Exercices

    Reproduire ce graphique Informations supplémentaires :
    • Données Vélib de New York
    • Calculer le taux de remplissage / max(velos disponnibles)
    • passer en format large
    • k-means en 8 classes Matrixe X (lignes = stations, colonnes = pas de temps)
    • facet + courbes moyennes + transparence (alpha)

    Sources