“La représentation visuelle et la présentation des données pour en faciliter la compréhension” (Kirk, 2019)
Qu’est-ce que la visualisation de données ?
“La représentation visuelle et la présentation des données pour en faciliter la compréhension”
Qu’est-ce que la visualisation de données ?
“La représentation visuelle et la présentation des données pour en faciliter la compréhension”
données : les données sont des noms, des quantités, des descriptions, des catégories, des mesures, des dates, des lieux, etc. qui sont collectés, enregistrés et stockés dans un format qui peut être traité par un ordinateur.
Qu’est-ce que la visualisation de données ?
“La représentation visuelle et la présentation des données pour en faciliter la compréhension”
représentation visuelle : les décisions sur la manière dont vous allez représenter vos données visuellement afin que la compréhension du sujet qu’elles offrent puisse être rendue accessible à votre public (il s’agit de graphiques et de la sélection du bon graphique pour montrer les caractéristiques de vos données que vous jugez les plus pertinentes. Les éléments constitutifs de tout graphique sont les marques et les attributs - les marques peuvent être des points, des lignes ou des formes et sont utilisées pour représenter des éléments de données)
Qu’est-ce que la visualisation de données ?
“La représentation visuelle et la présentation des données pour en faciliter la compréhension”
présentation : les autres décisions de conception qui constituent l’anatomie complète de toute visualisation de données ( la manière dont nous choisissons d’“emballer” un travail de visualisation pour le transmettre à un public, quel que soit le support ou la méthode de diffusion).
Qu’est-ce que la visualisation de données ?
“La représentation visuelle et la présentation des données pour en faciliter la compréhension”
faciliter la compréhension : qu’est-ce qu’on voit ? que cela signifie-t-il, au regard du sujet traité ?
Qu’est-ce que la visualisation de données ?
Les trois phases de la compréhension (Kirk, 2019, figure 1.4)
Qu’est-ce que la visualisation de données ?
En d’autres termes…
une pratique qui consiste à concevoir et à créer des représentations graphiques faciles à communiquer et à comprendre à partir de données statistiques,
un ensemble de méthodes permettant de résumer de manière graphique ces données statistiques (quantitatives ou qualitatives), à l’aide d’élément visuels statiques, dynamiques ou interactifs.
Qu’est-ce que la visualisation de données ?
En réalité, plusieurs types d’usages…
Des différences dans le but à atteindre et même dans le choix des graphiques à mettre en oeuvre :
Explorer et analyser : explorer un jeu de données, avoir une vue d’ensemble, découvrir des tendances, des corrélations, des anomalies, etc.
Expliquer : aider les autres à comprendre les données et les relations entre les variables ou les individus, etc.
Présenter : accompagner votre public dans une argumentation, l’aider à prendre une décision, etc.
Qu’est-ce que la visualisation de données ?
En réalité, plusieurs types d’usages…
Explorer et analyser : au début, il y a beaucoup de choses à explorer, beaucoup de graphiques réalisable, ne pas passer beaucoup de temps sur chacun d’entre eux, utiliser des graphiques génériques, ne pas les personnaliser ni se préoccuper des couleurs, etc.
Expliquer : en utiliser le moins possible, en les choisissant avec soin, les ordonner de façon à ce qu’ils soient faciles à comprendre, ajouter de l’interaction pour aider les gens à mieux comprendre
Présenter : se concentrer sur l’amélioration des graphiques : couleurs, légendes, titres, etc., mise en évidence des éléments clés (ce qui peut être considéré comme un biais dans l’exploration), utilisation éventuelle de graphiques inhabituels pour faciliter la mémorisation
Qu’est-ce que la visualisation de données ?
Distinctions et disciplines associées - Visualisation de données vs. …
Proportion de ventes par type au cours du temps (Kirk, 2019, figure 1.2)
S’il est possible, à la lecture du tableau, de répondre à des questions simples comme “quel est le pourcentage de ventes réalisées online par le vendeur en Avril 2016 ?” (c’est 84),
…il est difficile de mener des réflexions plus générale comme “quelle est l’évolution de chaque canal de vente au cours du temps ?”.
Pourquoi visualiser ?
Proportion de ventes par type au cours du temps (Kirk, 2019, figure 1.3)
Pourquoi visualiser ?
Dans un article de 1973, Francis Anscombe a publié quatre petits ensembles de données, aujourd’hui connus sous le nom de “quartet d’Anscombe”, afin de montrer les limites des statistiques sommaires.
Les quatre ensembles de données du quartet partagent plusieurs propriétés statistiques : leurs valeurs moyennes, leurs variances et leurs coefficients de corrélation.
Mean X
Mean Y
Variance X
Variance Y
Correlation
I
9.0
7.5
11.0
4.125
0.816
II
9.0
7.5
11.0
4.125
0.816
III
9.0
7.5
11.0
4.125
0.816
IV
9.0
7.5
11.0
4.125
0.816
Sur le papier, ils semblent donc assez semblables les uns aux autres, mais lorsque nous les visualisons, ils sont clairement différents.
Augmenter les ressources cognitives : utiliser une ressource visuelle permet de réduire la charge cognitive en utilisant la capacité de traitement visuel de notre cerveau.
Réduire la recherche d’information : par exemple en représentant une grande quantité de données dans un espace réduit.
Améliorer la reconnaissance de motifs : notre cerveau est très bon pour reconnaître des motifs visuels.
Faciliter la comparaison ou la déduction de relations qui seraient autrement difficile à voir.
Fournir un support manipulable : les graphiques interactifs permettent de manipuler les données et de les explorer.
Pourquoi visualiser ?
⇒ Parce que notre perception visuelle est incroyablement puissante pour reconnaître les motifs et identifier les structures dans les données.
Ce n’est pas une coïncidence si, lorsque nous comprenons quelque chose, nous disons “je vois”…
Histoire de la visualisation de données
Les prémices ?
Contrairement à ce que l’on croit généralement, la visualisation des données n’est pas un développement moderne.
Dès la préhistoire, des données stellaires ou des informations telles que l’emplacement des étoiles ont été visualisées sur les parois des grottes (comme celles de la grotte de Lascaux dans le sud de la France) depuis l’ère du Pléistocène.
Des artefacts physiques tels que les jetons d’argile mésopotamiens (5500 av. J.-C.), les quipus incas (2600 av. J.-C.) et les diagrammes à bâtons des Îles Marshall (n.d.) peuvent également être considérés comme visualisant des informations quantitatives.
“[…] quand il s’agit de reconnaitre la proportion qui existe entre diverses quantités, ou diverses grandeurs, l’oeil a une supériorité étonnante pour la saisir.”
Contribution majeure au développement de l’analyse exploratoire des données (exploratory data analysis) dans les années 1960
Met en avant le rôle de la visualisation dans le processus d’analyse des données
Développe des méthodes de visualisation statistique comme les diagrammes de boîtes (boxplots) et les matrices de nuages de points (scatterplot matrices)
Histoire de la visualisation de données
Au XXème siècle - Jacques Bertin (1918-2010)
Publie l’ouvrage “Sémiologie graphique. Les diagrammes, les réseaux, les cartes” (1967)
explique comment mobiliser le système de signes propre à la visualisation de données statistiques
Publie l’ouvrage “The Visual Display of Quantitative Information” (1983), qui devient rapidement une référence dans le domaine de la visualisation de données
décrit de nombreux principes de conception de visualisation de données
présente de nombreux exemples de visualisation de données
“lie factor”, “data-ink ratio”, “chartjunk”, etc.
Popularise des représentation comme les mini-graphes (sparklines).
Que ce soit en JavaScript, en R ou en Python, il existe de nombreuses bibliothèques de visualisation de données.
De manière générale, on rencontre deux types d’approches :
des bibliothèques proposant des visualisations “prêtes à l’emploi” (comme Chart.js, Highcharts, Plotly, etc.)
des bibliothèques permettant de créer des visualisations personnalisées, que ce soit en implémentant la grammaire des graphiques (comme ggplot2 ou Observable Plot) ou en utilisant des primitives graphiques et en les liant aux données (comme D3.js).
Exemple avec Chart.js
Une bibliothèque qui propose des types de graphiques :
Exemple avec Observable Plot
Une bibliothèque qui implémente la grammaire des graphiques :
Pour décrire comment lier des données à des éléments HTML et comment les transformer :
d3 =require('d3@7')
Code
{const svgWidth =640;const svgHeight =400;// On créé l'élément SVGconst svg = d3.create('svg').attr('width', svgWidth).attr('height', svgHeight);const marginBottom =30;const marginLeft = svgWidth /20;const marginTop = marginBottom;const w = svgWidth - marginLeft;const h = svgHeight - marginBottom - marginBottom;const barWidth = w / dataset.length// Largeur de chaque barreconst margin =5;// Espace entre les barres// Une échelle linéaire permettant de mapper les valeur d'entrée// vers une position (hauteur) sur l'axe 'y'const yScale = d3.scaleLinear().domain([0,Math.ceil(d3.max(dataset, d => d.value) /10) *10]).range([h,0])// Création du groupe SVG qui va acceuillir les barres.const bars = svg.append('g')// La valeur y est calculée depuis le haut, nous avons donc besoin de marginLeft et marginTop.attr('transform',`translate(${marginLeft}, ${marginTop})`); bars.selectAll('rect').data(dataset).join('rect').attr('x', (d, i) => i * barWidth).attr('width', barWidth - margin).attr('y', d =>yScale(d.value)).attr('height', d => h -yScale(d.value)).attr('fill', (d, i) => d3.schemePastel1[i])// On ajoute les étiquettes de l'axe 'x' :const cityNames = svg.append('g').attr('transform',`translate(${marginLeft}, ${marginTop})`); cityNames.selectAll('text').data(dataset).join('text').attr('x', (d, i) => i * barWidth + barWidth /2).attr('y', h +20).attr('text-anchor','middle').attr('font-size','12px').attr('font-family','sans-serif').text(d => d.name)const axisY = d3.axisLeft().scale(yScale).ticks(8); svg.append('g').attr('transform',`translate(${marginLeft -3}, ${marginTop})`).attr('font-family','sans-serif').attr('font-size','12px').call(axisY);return svg.node()}
Données et représentation
Pour créer les deux dernières visualisations, nous avons fait correspondre des valeurs de données à des symboles visuels.
Dans de nombreuses visualisations, chaque point de données (ligne d’un tableau) est associé à une marque (un objet visuel, tel qu’un point, une barre, etc.). Les propriétés des données (colonnes) que nous choisissons sont ensuite associées à des variables visuelles telles que la position, la couleur, la taille, etc.
L’idée principale est de concevoir un graphique comme une succession de couches. Chaque couche définit une correspondance entre certaines variables ou leur transformation statistique et les attributs esthétiques (position dans l’espace, couleur, épaisseur, etc) de formes géométriques définies (points, barres, lignes, tuiles, etc).
Cette approche permet de définir des graphiques très variés et de les combiner facilement (outrepassant les limites offertes par les bibliothèques de visualisation “prêtes à l’emploi” qui disposeraient d’une recette pour faire un “bar chart”, pour faire un “scatter plot”, etc.).
Dans le cadre de ce cours…
Observable Plot
Observable Plot est une bibliothèque open source de visualisation développée notamment par Mike Bostock (le créateur de D3.js) et Philippe Rivière (un des principaux contributeurs de D3.js).
Elle permet de créer rapidement des visualisations en utilisant la grammaire des graphiques, en utilisant la puissance de D3.js mais sans nécessiter d’être un développeur JavaScript confirmé.
Dans le cadre de ce cours…
D3.js
Data-Driven Documents (lier sélectivement les données d’entrée à des éléments de HTML, en appliquant des transformations dynamiques pour générer et modifier le contenu)
Il s’agit d’une puissante bibliothèque open source de visualisation de données développée également Mike Bostock (et d’autres contributeurs).
Plutôt low-level (permettant un contrôle très fin des visualisations créées, aux dépens de la complexité du code)
Dans le cadre de ce cours…
La plateforme Observable
Observable est une plateforme de création et de partage de visualisations interactives (sous forme de notebooks JavaScript).
Elle est également développée par Mike Bostock et son équipe.
Comme d’autres systèmes de notebooks Observable permet de combiner du code, des visualisations et du texte.