Slide 1

Slide 1 text

Des données brutes à la dataviz Colin FAY - ThinkR 2017/09/19 Colin FAY - @_colinfay - ThinkR- @thinkR_fr 1 / 35

Slide 2

Slide 2 text

$ whoami Colin FAY Data Analyst, formateur R, Social Media Manager chez ThinkR, agence spécialisée en Data Science et en langage R. Fondateur de Data-Bzh, la première plateforme de data-blogging bretonne. http://thinkr.fr http://data-bzh.fr http://twitter.com/_colinfay http://github.com/colinfay Colin FAY - @_colinfay - ThinkR- @thinkR_fr 2 / 35

Slide 3

Slide 3 text

De quoi va-t-on parler aujourd'hui ? Colin FAY - @_colinfay - ThinkR- @thinkR_fr 3 / 35

Slide 4

Slide 4 text

De la donnée brute... Colin FAY - @_colinfay - ThinkR- @thinkR_fr 4 / 35

Slide 5

Slide 5 text

...à la dataviz ! Colin FAY - @_colinfay - ThinkR- @thinkR_fr 5 / 35

Slide 6

Slide 6 text

Ce n'est pas (que) de la magie... Colin FAY - @_colinfay - ThinkR- @thinkR_fr 6 / 35

Slide 7

Slide 7 text

... il y a aussi du boulot... Colin FAY - @_colinfay - ThinkR- @thinkR_fr 7 / 35

Slide 8

Slide 8 text

... et de la méthode. Colin FAY - @_colinfay - ThinkR- @thinkR_fr 8 / 35

Slide 9

Slide 9 text

De la méthode La dataviz reste avant tout un outil de communication. Mais avant, il se passe plein de trucs. Importer (on fait venir les données dans son environnement de travail). Nettoyer (on nettoie le bazar mis par quelqu'un d'autre). Visualiser (on explore en visualisant). et enfin, communiquer (be patient!). Colin FAY - @_colinfay - ThinkR- @thinkR_fr 9 / 35

Slide 10

Slide 10 text

Importer Colin FAY - @_colinfay - ThinkR- @thinkR_fr 10 / 35

Slide 11

Slide 11 text

Importer Travailler avec des données "in the wild", c'est souvent avoir à faire face à des choses étranges : Des formats inconnus. Des formats propriétaires. Des encodages anarchiques. Des nomenclatures inconnues. ... et je vais m'arrêter là qu'on puisse à un moment aller manger. Colin FAY - @_colinfay - ThinkR- @thinkR_fr 11 / 35

Slide 12

Slide 12 text

Nettoyer Colin FAY - @_colinfay - ThinkR- @thinkR_fr 12 / 35

Slide 13

Slide 13 text

Nettoyer Pourquoi ? Avant d'être traitées, les données ont souvent besoin d'un petit coup de « cleaning » (ou de burin, ça dépend) : Pour formater le texte. Pour formater les chiffres. Parce qu'il faut savoir quoi faire des données manquantes. Parce qu'il y a souvent des lignes / colonnes vides. ... Colin FAY - @_colinfay - ThinkR- @thinkR_fr 13 / 35

Slide 14

Slide 14 text

Importer et nettoyer Par l'exemple... Jeu de données : Budget principal du Département de Loire-Atlantique Rien que pour la "lecture" du jeu de données, j'ai... Téléchargé et décompressé le.zip. Listé les csv. Chargé les 10 csv. Travaillé sur l'encodage. Assigné la bonne date à chaque csv. Supprimé les caractères inexploitables (€). Transformé les colonnes en chiffres. Joint les tableaux. Colin FAY - @_colinfay - ThinkR- @thinkR_fr 14 / 35

Slide 15

Slide 15 text

Transformer Colin FAY - @_colinfay - ThinkR- @thinkR_fr 15 / 35

Slide 16

Slide 16 text

Transformer Pourquoi ? On passe toujours par un petit moment de manipulation de données pour : Résumer. Créer des nouvelles lignes / colonnes. Découvrir des tendances. Construire des modèles. ... Colin FAY - @_colinfay - ThinkR- @thinkR_fr 16 / 35

Slide 17

Slide 17 text

Transformer Par l'exemple... Jeu de données : Budget principal du Département de Loire-Atlantique Supprimer les données manquantes. Grouper les observations par année. Grouper par type de dépense. Calculer la somme par année et par type de dépense. Colin FAY - @_colinfay - ThinkR- @thinkR_fr 17 / 35

Slide 18

Slide 18 text

Visualiser Colin FAY - @_colinfay - ThinkR- @thinkR_fr 18 / 35

Slide 19

Slide 19 text

Visualisation : se poser les bonnes questions Qu'est-ce qu'on chercher à représenter ? (Un dessin sur du papier permet de se faire une bonne idée de ce que l'on cherche à visualiser) Un, deux, trois... variables ? Quelles échelles ? Quelles formes ? Quelles couleurs ? ... Admettons qu'ici, on veuille se représenter l'évolution des recettes et dépenses du Département. Mais avant... Colin FAY - @_colinfay - ThinkR- @thinkR_fr 19 / 35

Slide 20

Slide 20 text

interlude::on() Colin FAY - @_colinfay - ThinkR- @thinkR_fr 20 / 35

Slide 21

Slide 21 text

Si vous ne deviez retenir qu'un slide de ma présentation : (... hormis les legos, bien sûr) Une dataviz contient la juste dose d'éléments. Pas plus, pas moins. Avant d'ajouter chaque nouvel élément, il est indispensable de se poser la question : est-ce que j'ajoute cela parce que c'est beau, ou parce que ça a du sens ? Une dataviz se doit d'être informative, pas "belle" : ça presque, on s'en fout (même si c'est mieux). Quitte à choisir, autant avoir une dataviz moche mais informative, qu'une "belle" dataviz où on ne comprend rien. Colin FAY - @_colinfay - ThinkR- @thinkR_fr 21 / 35

Slide 22

Slide 22 text

Pourquoi je vous dis ça ? Colin FAY - @_colinfay - ThinkR- @thinkR_fr 22 / 35

Slide 23

Slide 23 text

Pourquoi je vous dis ça : Colin FAY - @_colinfay - ThinkR- @thinkR_fr 23 / 35

Slide 24

Slide 24 text

Pourquoi je vous dis ça : Colin FAY - @_colinfay - ThinkR- @thinkR_fr 24 / 35

Slide 25

Slide 25 text

Pourquoi je vous dis ça : Alors que bon... Colin FAY - @_colinfay - ThinkR- @thinkR_fr 25 / 35

Slide 26

Slide 26 text

Pourquoi je vous dis ça : ## Loading tidyverse: ggplot2 ## Loading tidyverse: tibble ## Loading tidyverse: tidyr ## Loading tidyverse: readr ## Loading tidyverse: purrr ## Loading tidyverse: dplyr ## Conflicts with tidy packages ----------------------------------- ----------- ## filter(): dplyr, stats ## lag(): dplyr, stats Colin FAY - @_colinfay - ThinkR- @thinkR_fr 26 / 35

Slide 27

Slide 27 text

Pourquoi je vous dis ça : Le pire dans cette histoire, c'est que le même graphe m'a pris 2 minutes à créer : library(tidyverse) df <- data.frame(What = factor(c("Every few Months", "Every few weeks", "Every few days","Daily", "Never"), levels = c("Every few Months", "Every few weeks", "Every few days","Daily", "Never")), How_much = c(42, 19, 8, 2, 29)) ggplot(df, aes(What, How_much)) + geom_col(fill = "#E2673C") + labs(title = "A better plot", x = "What", y = "How much, in %") + theme_wsj() Colin FAY - @_colinfay - ThinkR- @thinkR_fr 27 / 35

Slide 28

Slide 28 text

Moral Si en sortant d'ici... ... vous faites un graphique en camembert, je viendrais vous hanter pendant votre sommeil. ... vous faites un graphique camembert en 3D, je vous promets que je fais une crise cardiaque (chiche !). Bref : La première question à vous poser ne devra JAMAIS être "est-ce que ça va être joli" ? / "est-ce que mon graphique 3D qui tourne va impressionner Julien du service Marketing ?" Colin FAY - @_colinfay - ThinkR- @thinkR_fr 28 / 35

Slide 29

Slide 29 text

interlude::o () Colin FAY - @_colinfay - ThinkR- @thinkR_fr 29 / 35

Slide 30

Slide 30 text

Créer une dataviz, quelques étapes Colin FAY - @_colinfay - ThinkR- @thinkR_fr 30 / 35

Slide 31

Slide 31 text

Étape 1 : un tableau rapide, moche, et informatif TYPE_DE_MOUVEMENT ANNEE Montant_depenses DEPENSE 2009 1.299e+09 DEPENSE 2010 1.27e+09 DEPENSE 2011 1.331e+09 DEPENSE 2012 1.425e+09 DEPENSE 2013 1.468e+09 DEPENSE 2014 1.424e+09 Colin FAY - @_colinfay - ThinkR- @thinkR_fr 31 / 35

Slide 32

Slide 32 text

Étape 2 : une dataviz rapide, moche, et informative : Colin FAY - @_colinfay - ThinkR- @thinkR_fr 32 / 35

Slide 33

Slide 33 text

Wait... il n'y a rien qui vous surprenne ? Colin FAY - @_colinfay - ThinkR- @thinkR_fr 33 / 35

Slide 34

Slide 34 text

Wait... il n'y a rien qui vous surprenne ? (Si, les recettes sont toujours égales aux dépenses) Colin FAY - @_colinfay - ThinkR- @thinkR_fr 33 / 35

Slide 35

Slide 35 text

Bref, enfin, on peut enfin penser à mettre les paillettes : ## ## Attaching package: 'scales' ## The following object is masked from 'package:purrr': ## ## discard ## The following object is masked from 'package:readr': ## ## col_factor Colin FAY - @_colinfay - ThinkR- @thinkR_fr 34 / 35

Slide 36

Slide 36 text

Retrouvez-moi sur les internets : (je parle principalement de données) colin@thinkr.fr http://twitter.com/_colinfay http://twitter.com/thinkr_fr https://github.com/ColinFay J'écris des trucs sur les internets : (et ça parle principalement de données) https://thinkr.fr/ http://colinfay.me/ http://data-bzh.fr/ Merci ! des questions ? Colin FAY - @_colinfay - ThinkR- @thinkR_fr 35 / 35