Ви не можете вибрати більше 25 тем Теми мають розпочинатися з літери або цифри, можуть містити дефіси (-) і не повинні перевищувати 35 символів.

369 рядки
6.2KB

  1. ---
  2. title: "Principes de design, Visualisation de données tabulaires"
  3. author: "Maxime Wack"
  4. date: "19/11/2019"
  5. output:
  6. xaringan::moon_reader:
  7. css: ['default','css/my_style.css']
  8. lib_dir: libs
  9. seal: false
  10. nature:
  11. ratio: '4:3'
  12. countIncrementalSlides: false
  13. self-contained: true
  14. beforeInit: "addons/macros.js"
  15. ---
  16. ```{r, include = FALSE}
  17. library(tidyverse)
  18. library(DT)
  19. library(knitr)
  20. opts_chunk$set(echo = F,
  21. warning = F,
  22. error = F,
  23. message = F)
  24. options(DT.options = list(paging = F,
  25. info = F,
  26. searching = F))
  27. datatable <- partial(datatable, rownames = F)
  28. ```
  29. class: center, middle, title
  30. # UE Visualisation
  31. ### 2019-2020
  32. ## Dr. Maxime Wack
  33. ### AHU Informatique médicale
  34. #### Hôpital Européen Georges Pompidou, </br> Université de Paris
  35. ---
  36. class: center, middle
  37. # Objectifs
  38. ## Principes de design
  39. ## Visualisation de données tabulaires
  40. ---
  41. class: center, middle
  42. # Principes de design
  43. ---
  44. class: center
  45. # *Éléments* de design
  46. ### Espace
  47. ### Point
  48. ### Ligne
  49. ### Surface
  50. ### Taille
  51. ### Couleur
  52. ### Forme
  53. ### ...
  54. ---
  55. class: center
  56. # *Principes* de design
  57. Autant de principes que de designers
  58. ![:scale 50%](03_img/designprinciples.png)
  59. [https://principles.design](https://principles.design)
  60. ---
  61. class: center
  62. # Principes de design
  63. ### Unité/Harmonie
  64. ### Motifs
  65. ### Équilibre
  66. ### Hiérarchisation
  67. ### Mouvement
  68. ### Contraste
  69. ---
  70. class: middle
  71. # Unité / Harmonie
  72. .pull-left[
  73. ### Principe **fondamental** de la visualisation
  74. ### L'ensemble doit être **visuellement cohérent**
  75. ### Notion de **composition** des éléments en un tout
  76. ]
  77. .pull-right[![:scale 100%](03_img/princ_unite.png)]
  78. ---
  79. class: middle
  80. # Motifs
  81. .pull-left[
  82. ### Répétition **régulière** d'un ou plusieurs *éléments*
  83. ### Principal outil de la visualisation de **collections de données**
  84. ]
  85. .pull-right[![:scale 100%](03_img/princ_motif.png)]
  86. ---
  87. class: middle
  88. # Équilibre
  89. .pull-left[
  90. ### Distribution **équilibrée** des éléments visuels
  91. ### Utiliser la **symmétrie** pour comparer
  92. ### Utiliser l'**assymétrie** pour appuyer sur les différences
  93. ### La symmétrie **radiale** permet d'organiser autour d'un élément central
  94. ]
  95. .pull-right[![:scale 100%](03_img/princ_equilibre.png)]
  96. ---
  97. class: middle
  98. # Hiérarchisation
  99. .pull-left[
  100. ### **Insister** sur le message à communiquer
  101. ### Donner une **importance relative** indicative de la réalité
  102. ### Choix des couleurs (*rareté* des couleurs)
  103. ### Gestion du **contraste**
  104. ### **Échelles** et **proportions**
  105. ]
  106. .pull-right[![:scale 80%](03_img/princ_hierarch.png)]
  107. ---
  108. class: middle
  109. # Mouvement
  110. .pull-left[
  111. ### Même sur une image **fixe**
  112. ### Notion de directionalité
  113. ### **Diriger** le regard du lecteur
  114. ]
  115. .pull-right[![:scale 100%](03_img/princ_mouvement.png)]
  116. ---
  117. class: middle
  118. # Contraste
  119. .pull-left[
  120. ### **Juxtaposition** d'éléments **opposés** (couleur, luminosité, direction)
  121. ### Mise en avant **relative**
  122. ### Contraste ↔ Similarité
  123. ]
  124. .pull-right[![:scale 100%](03_img/princ_contraste.png)]
  125. ---
  126. class:center,middle
  127. # Code
  128. ## **Pas** de code spécifique
  129. ### Application des *principes* en manipulant les *éléments*
  130. ### *Data* → **Motifs, Mouvement**
  131. ### *Aesthetics* → **Hiérarchisation, Contraste**
  132. ### *Theme* → **Unité, Équilibre**
  133. ---
  134. class:center, middle
  135. # Exemples
  136. [Dark Horse Analytics](https://www.darkhorseanalytics.com/blog/data-looks-better-naked)
  137. ---
  138. class:center, middle
  139. ![](03_img/data-ink.gif)
  140. ---
  141. class:center, middle
  142. ![](03_img/ClearOffTheTableMd.gif)
  143. ---
  144. class:center, middle
  145. ![](03_img/map_reduce2.gif)
  146. ---
  147. class:center, middle
  148. ![](03_img/devourThePie3.gif)
  149. ---
  150. class: center, middle
  151. # Visualisation de données tabulaires
  152. ---
  153. class:center
  154. # Excel
  155. ![](03_img/excel_data.png)
  156. ---
  157. class:center, middle
  158. ![](03_img/excel_menu.png)
  159. ---
  160. class:center, middle
  161. ![](03_img/excel_graph.png)
  162. ---
  163. # Edgar F Codd
  164. .pull-left[
  165. ### 1923 - 2003
  166. ### Prix Turing 1981
  167. ### Inventeur des **modèles relationnels** pour la gestion de bases de données
  168. ### Définition des formes normales dans un papier de conférence en **1971**
  169. ]
  170. .pull-right[![](03_img/Edgar_F_Codd.jpg)]
  171. ---
  172. # Formes normales
  173. ## 1NF : une donnée par cellule
  174. *Le domaine de chaque attribut ne contient que des données atomiques*
  175. ## 2NF : 1NF + attributs par clé
  176. *Un attribut non-clé ne dépend pas d'une partie de la clé mais de toute la clé*
  177. ## 3NF : 2NF + attributs de la clé indépendants les uns des autres
  178. *Un attribut non-clé ne dépend pas d'un ou plusieurs attributs ne participant pas à la clé*
  179. ---
  180. class: center
  181. # 1NF
  182. .tiny[
  183. ```{r 0nf}
  184. data.frame(Produit = "TV",
  185. Fournisseur = "samsung, sony") %>%
  186. datatable
  187. ```
  188. ]
  189. ```{r 1nf}
  190. data.frame(Produit = c("TV", "TV"),
  191. Fournisseur = c("samsung", "sony")) %>%
  192. datatable
  193. ```
  194. ---
  195. class: center
  196. # 2NF
  197. ```{r 2nf}
  198. data.frame(Produit = c("TV", "Phone", "TV"),
  199. Fournisseur = c("Samsung", "Samsung", "Sony"),
  200. Ville = c("Seoul", "Seoul", "Tokyo")) %>%
  201. datatable
  202. ```
  203. ```{r 2nf ok}
  204. data.frame(Produit = c("TV", "Phone", "TV"),
  205. Fournisseur = c("Samsung", "Samsung", "Sony")) %>%
  206. datatable
  207. data.frame(Fournisseur = c("Samsung", "Sony"),
  208. Ville = c("Seoul", "Tokyo")) %>%
  209. datatable
  210. ```
  211. ---
  212. class: center
  213. # 3NF
  214. ```{r 3nf}
  215. data.frame(Fournisseur = c("Samsung", "Sony"),
  216. Ville = c("Seoul", "Tokyo"),
  217. Pays = c("Corée du sud", "Japon")) %>%
  218. datatable
  219. ```
  220. ```{r 3nf ok}
  221. data.frame(Fournisseur = c("Samsung", "Sony"),
  222. Ville = c("Seoul", "Tokyo")) %>%
  223. datatable
  224. data.frame(Ville = c("Seoul", "Tokyo"),
  225. Pays = c("Corée", "Japon")) %>%
  226. datatable
  227. ```
  228. ---
  229. class: center
  230. # À plat
  231. ```{r flat}
  232. data.frame(Produit = c("TV", "Phone", "TV"),
  233. Fournisseur = c("Samsung", "Samsung", "Sony"),
  234. Ville = c("Seoul", "Seoul", "Tokyo"),
  235. Pays = c("Corée", "Corée", "Japon")) %>%
  236. datatable
  237. ```
  238. ### Opération facile à réaliser
  239. ### Chaque observation contient toute l'information
  240. ---
  241. class: center
  242. # Avec ggplot2
  243. ### Relation **1:1** entre *observation* et unité de *geometry*
  244. ### Valeur d'*aesthetic* directement accessible par *observation*