|
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368 |
- ---
- title: "Principes de design, Visualisation de données tabulaires"
- author: "Maxime Wack"
- date: "17/11/2020"
- output:
- xaringan::moon_reader:
- css: ['default','css/my_style.css']
- lib_dir: libs
- seal: false
- nature:
- ratio: '4:3'
- countIncrementalSlides: false
- self-contained: true
- beforeInit: "addons/macros.js"
- ---
-
- ```{r, include = FALSE}
- library(tidyverse)
- library(DT)
- library(knitr)
-
- opts_chunk$set(echo = F,
- warning = F,
- error = F,
- message = F)
- options(DT.options = list(paging = F,
- info = F,
- searching = F))
-
- datatable <- partial(datatable, rownames = F)
- ```
-
- class: center, middle, title
-
- # UE Visualisation
-
- ### 2020-2021
-
- ## Dr. Maxime Wack
-
- ### AHU Informatique médicale
- #### Hôpital Européen Georges Pompidou, </br> Université de Paris
-
- ---
- class: center, middle
- # Objectifs
-
- ## Principes de design
-
- ## Visualisation de données tabulaires
-
- ---
- class: center, middle
-
- # Principes de design
-
- ---
- class: center
-
- # *Éléments* de design
-
- ### Espace
- ### Point
- ### Ligne
- ### Surface
- ### Taille
- ### Couleur
- ### Forme
- ### ...
-
- ---
- class: center
-
- # *Principes* de design
-
- Autant de principes que de designers
-
- ![:scale 50%](03-img/designprinciples.png)
-
- [https://principles.design](https://principles.design)
-
- ---
- class: center
-
- # Principes de design
-
- ### Unité/Harmonie
- ### Motifs
- ### Équilibre
- ### Hiérarchisation
- ### Mouvement
- ### Contraste
-
- ---
- class: middle
-
- # Unité / Harmonie
-
- .pull-left[
- ### Principe **fondamental** de la visualisation
-
- ### L'ensemble doit être **visuellement cohérent**
-
- ### Notion de **composition** des éléments en un tout
- ]
-
- .pull-right[![:scale 100%](03-img/princ_unite.png)]
-
- ---
- class: middle
-
- # Motifs
-
- .pull-left[
- ### Répétition **régulière** d'un ou plusieurs *éléments*
-
- ### Principal outil de la visualisation de **collections de données**
- ]
-
- .pull-right[![:scale 100%](03-img/princ_motif.png)]
-
- ---
- class: middle
-
- # Équilibre
-
- .pull-left[
- ### Distribution **équilibrée** des éléments visuels
-
- ### Utiliser la **symmétrie** pour comparer
-
- ### Utiliser l'**assymétrie** pour appuyer sur les différences
-
- ### La symmétrie **radiale** permet d'organiser autour d'un élément central
- ]
-
- .pull-right[![:scale 100%](03-img/princ_equilibre.png)]
-
- ---
- class: middle
-
- # Hiérarchisation
-
- .pull-left[
- ### **Insister** sur le message à communiquer
-
- ### Donner une **importance relative** indicative de la réalité
-
- ### Choix des couleurs (*rareté* des couleurs)
-
- ### Gestion du **contraste**
-
- ### **Échelles** et **proportions**
- ]
-
- .pull-right[![:scale 80%](03-img/princ_hierarch.png)]
-
- ---
- class: middle
-
- # Mouvement
-
- .pull-left[
- ### Même sur une image **fixe**
-
- ### Notion de directionalité
-
- ### **Diriger** le regard du lecteur
- ]
-
- .pull-right[![:scale 100%](03-img/princ_mouvement.png)]
-
- ---
- class: middle
-
- # Contraste
-
- .pull-left[
- ### **Juxtaposition** d'éléments **opposés** (couleur, luminosité, direction)
-
- ### Mise en avant **relative**
-
- ### Contraste ↔ Similarité
- ]
-
- .pull-right[![:scale 100%](03-img/princ_contraste.png)]
-
- ---
- class:center,middle
-
- # Code
-
- ## **Pas** de code spécifique
-
- ### Application des *principes* en manipulant les *éléments*
-
- ### *Data* → **Motifs, Mouvement**
- ### *Aesthetics* → **Hiérarchisation, Contraste**
- ### *Theme* → **Unité, Équilibre**
-
- ---
- class:center, middle
-
- # Exemples
-
- [Dark Horse Analytics](https://www.darkhorseanalytics.com/blog/data-looks-better-naked)
-
- ---
- class:center, middle
-
- ![](03-img/data-ink.gif)
-
- ---
- class:center, middle
-
- ![](03-img/ClearOffTheTableMd.gif)
-
- ---
- class:center, middle
-
- ![](03-img/map_reduce2.gif)
-
- ---
- class:center, middle
-
- ![](03-img/devourThePie3.gif)
-
- ---
- class: center, middle
-
- # Visualisation de données tabulaires
-
- ---
- class:center
-
- # Excel
-
- ![](03-img/excel_data.png)
-
- ---
- class:center, middle
-
- ![](03-img/excel_menu.png)
-
- ---
- class:center, middle
-
- ![](03-img/excel_graph.png)
-
- ---
-
- # Edgar F Codd
-
- .pull-left[
-
- ### 1923 - 2003
-
- ### Prix Turing 1981
-
- ### Inventeur des **modèles relationnels** pour la gestion de bases de données
-
- ### Définition des formes normales dans un papier de conférence en **1971**
-
- ]
-
- .pull-right[![](03-img/Edgar_F_Codd.jpg)]
-
- ---
-
- # Formes normales
-
- ## 1NF : une donnée par cellule
- *Le domaine de chaque attribut ne contient que des données atomiques*
-
- ## 2NF : 1NF + attributs par clé
- *Un attribut non-clé ne dépend pas d'une partie de la clé mais de toute la clé*
-
- ## 3NF : 2NF + attributs de la clé indépendants les uns des autres
- *Un attribut non-clé ne dépend pas d'un ou plusieurs attributs ne participant pas à la clé*
-
- ---
- class: center
-
- # 1NF
-
- .tiny[
- ```{r 0nf}
- data.frame(Produit = "TV",
- Fournisseur = "samsung, sony") %>%
- datatable
- ```
- ]
- ↓
- ```{r 1nf}
- data.frame(Produit = c("TV", "TV"),
- Fournisseur = c("samsung", "sony")) %>%
- datatable
- ```
-
- ---
- class: center
-
- # 2NF
-
- ```{r 2nf}
- data.frame(Produit = c("TV", "Phone", "TV"),
- Fournisseur = c("Samsung", "Samsung", "Sony"),
- Ville = c("Seoul", "Seoul", "Tokyo")) %>%
- datatable
- ```
- ↓
- ```{r 2nf ok}
- data.frame(Produit = c("TV", "Phone", "TV"),
- Fournisseur = c("Samsung", "Samsung", "Sony")) %>%
- datatable
-
- data.frame(Fournisseur = c("Samsung", "Sony"),
- Ville = c("Seoul", "Tokyo")) %>%
- datatable
- ```
-
- ---
- class: center
-
- # 3NF
-
- ```{r 3nf}
- data.frame(Fournisseur = c("Samsung", "Sony"),
- Ville = c("Seoul", "Tokyo"),
- Pays = c("Corée du sud", "Japon")) %>%
- datatable
- ```
- ↓
- ```{r 3nf ok}
- data.frame(Fournisseur = c("Samsung", "Sony"),
- Ville = c("Seoul", "Tokyo")) %>%
- datatable
-
- data.frame(Ville = c("Seoul", "Tokyo"),
- Pays = c("Corée", "Japon")) %>%
- datatable
- ```
-
- ---
- class: center
-
- # À plat
-
- ```{r flat}
- data.frame(Produit = c("TV", "Phone", "TV"),
- Fournisseur = c("Samsung", "Samsung", "Sony"),
- Ville = c("Seoul", "Seoul", "Tokyo"),
- Pays = c("Corée", "Corée", "Japon")) %>%
- datatable
- ```
-
- ### Opération facile à réaliser
-
- ### Chaque observation contient toute l'information
-
- ---
- class: center
-
- # Avec ggplot2
-
- ### Relation **1:1** entre *observation* et unité de *geometry*
-
- ### Valeur d'*aesthetic* directement accessible par *observation*
|