Rapport Challenge Open Data
Membres
- Léa BOUABDALLAH
- Quentin CHAUVELON
- Youssef LOUZAR
- Truong Giang NGUYEN
- Louis SASSIER
Sujet
Nous avons choisi de présenter l'évolution de la numérisation en France et montrer les différences qui peuvent apparaître quant aux pratiques numériques selon certains critères démographiques.
Notre objectif a été de représenter ces différences de deux manières. Tout d'abord d'un point de vue géographique en comparant les villes par région et par taille. Puis, en s'intéressant aux différences en fonction de l'âge. De plus, ces donnnées peuvent être visualisées sur diverses années afin de mieux comprendre les tendances évolutives.
Données utilisées
Le coeur de notre projet se base sur le Baromètre du Numérique qui est un questionnaire réalisé chaque année auprès de nombreux français sur leurs pratiques et habitudes vis à vis du numérique. Pour le projet, nous utilisons les données du dernier questionnaire de 2024 (fichier plus léger) ainsi que le fichier complet remontant juqsu'en 2007 (fichier très volumineux).
Afin de pouvoir afficher ces données sur une carte, nous avons aussi eu besoin d'autres jeux de données, à savoir :
- Le recensement de la population de l'INSEE
- La liste des régions françaises accompagnées de leur code
- Les contours administratifs des communes de France
Ces jeux de données nous permettent de lier les données du baromètre aux tracés des communes sur une carte.
Toutefois, le baromètre du numérique ne nous permet pas d'avoir de données assez précises sur la ville exacte où habitent les répondants au questionnaire. En outre, l'échantillon de personnes interrogées serait insuffisant pour avoir des données fiables et représentatives de la population. Cependant, nous avons accès à la région ainsi qu'à la taille de la ville. Ces informations nous permettent de faire apparaître des différences notables entre les régions, notamment pour les grandes villes. Nous avons donc fait le choix de montrer les différences par groupe de ville (en fonction de leur taille) au sein des différentes régions.
Traitements opérés
Traitement des donnés
Le traitement principal qu'il nous faut effectuer est de transformer les données pour obtenir un groupement selon certains critères puis de lier les quatre jeux de données mentionnés ensemble.
Pour cela, nous avons tout d'abord effectué un groupement (similaire à un GROUP BY en SQL) sur l'année, la taille de ville, puis la région, nous permettant d'obtenir un résultat structuré et hiérarchique comme suit :
data
├── 2024
│ ├── 100 000 habitants ou plus
│ │ ├── Auvergne-Rhône-Alpes
│ │ │ ├── Indicateur 1: X
│ │ │ ├── Indicateur 2: Y
│ │ │ ├── Indicateur 3: Z
│ │ │ └── ...
│ │ ├── Île-de-France
│ │ │ └── ...
│ │ └── ...
│ ├── 20 000 à 99 999 habitants
│ │ └── ...
├── 2023
│ └── ...
└── ...
Ce format nous permet d'effectuer facilement et de manière efficace des calculs statistiques (somme, moyenne...) pour une année, taille de ville ou région, ainsi que de filtrer ces dernières aisément.
Pour chaque indicateur, nous connaissons la région et la taille de la ville. Ainsi, pour chaque commune de France, à partir de sa population et région, nous pouvons associer les valeurs qui s'appliquent à cette commune. Par exemple, le contour administratif de Grenoble peut être associé aux valeurs X, Y, Z pour les indicateurs 1, 2, 3 sur l'exemple ci-dessus car Grenoble est une ville de plus de 100 000 habitants en Auvergne-Rhône-Alpes.
Voici comment les différents jeux de données peuvent être liées entre eux pour obtenir les informations nécessaires (valeurs applicables du baromètre, région, nom et population de la commune) :
Barometre[REGION] <> Region[nom_region]---Region[code_region] <> Communes[region]---Communes[code] <> Population[codgeo]---Population[p21_pop]
Pour l'exemple de Grenoble, cette liaison donnerait :
Auvergne-Rhône-Alpes <> Auvergne-Rhône-Alpes---84 <> 84---38185 <> 38185---157477
Nous pouvons ainsi modifier la structure des données géographiques (geojson) pour y inclure les données à afficher lors du traçage de la carte.
En parallèle, un second traitement est effectué sur le baromètre structuré pour ajouter un nouveau groupement (GROUP BY) par tranche d'âge, de nouveau dans un soucis d'efficacité
Chargement des données
Comme mentionné précédemment, nous utilisons deux versions du baromètre : celle de 2024 et celle allant de 2007 à 2024. Idéalement, nous ne voudrions utiliser que celui de 2007-2024. Cependant, le fichier est extrêmement volumineux (200 Mb) et rend le téléchargement et traitement des données très long, ce qui nuirait à l'expérience utilisateur. En effet, d'après nos tests, le traitement du fichier 2024 requiert environ 500ms, tandis que celui de 2007-2024 nécessite près de 10s. Pour maintenir un temps de chargement relativement faible, nous avons décidé de charger dans un premier temps les données de 2024 uniquement pour avoir un premier affichage du site et permettre à l'utilisateur d'interagir avec ce dernier, puis de continuer à charger en arrière plan l'intégralité des données avant de rafraichir les visualisations et d'autoriser l'affichage des autres années.
Afin de ne pas bloquer le thread principal et empêcher l'utilisateur d'interagir avec notre site, nous avons dû utiliser un web worker qui permet de déléguer le traitement à un autre thread, ce qui permet de garder une navigation fluide. Cela rend le chargement total un peu plus lent (environ 17s) mais semble être le meilleur compromis
Un chargement année par année au fur et à mesure que l'utilisateur interagit avec le site aurait été
idéal mais
data.gouv.fr ne permet pas d'accéder aux données d'une année spécifique, à l'exception de
la dernière.
Justification des modalités de visualisation
Notre visualisation est découpée en deux parties. D'un côte, la carte pour une répartition géographique, et de l'autre des graphiques pour une différence par critère sociodémographique (en l'occurence l'âge ici). Nous avons voulu exprimer nos données sous ces deux formes car elles permettent de mettre en valeur des perspectives différentes, le baromètre étant très complet. En outre, nous avons souhaité créer quelque chose qui ne ressemblait pas aux publications annuelles faites par l'Arcep qui mettent en lumière plusieurs aspects assez divers du baromètre avec un fil conducteur chaque année.
La carte nous a paru être une manière très visuelle et instantanément reconnaissable et compréhensible par tous de présenter les données. L'inconvénient de cette dernière est qu'il n'y a que peu de variables sur lesquelles nous pouvons jouer puisque nous ne pouvons modifier ni forme, taille ou orientation des communes. Toutefois, nous avons tout de même la possibilité d'utiliser la couleur (hue) et la valeur (luminosité). En effet, la couleur nous permet de distinguer différents groupes (discrétisation des tailles de villes) et la valeur nous permet de montrer la plage de valeurs au sein de chaque groupe. Ces différentes couleurs permettent d'un simple coup d'oeil de repérer les différentes catégories de ville et la valeur de comparer les villes d'un même groupe entre elles.
L'utilisateur a la possibilité de choisir parmi trois palettes de couleurs :
- Monochrome (bleu) : élimine les distinctions enter les tailles de ville et permet de ne mettre en lumière que la valeur
- Bicolore (vert-rouge) : même objectif que le monochrome mais permet de plus facilement distinguer les valeurs très faibles et très élevées
- Multicolore : palette par défaut avec une couleur par groupe pour séparer visuellement ces derniers
De plus, nous avons ajouté un filtre pour sélectionner/désélectionner des tailles de ville, ces dernières deviennent ainsi gris clair et permettent de mieux repérer et mettre en valeur les autres groupes. C'est particulièrement utile si l'on ne veut s'intéresser qu'à un groupe et limiter les distractions causées par les autres groupes.
En outre, nous avons aussi ajouté un tooltip lorsque l'utilisateur passe sa souris sur les communes de la carte qui permettent d'obtenir la valeur de la commune en question de manière plus précise qu'avec la couleur.
Sur la partie droite, nous avons choisi de représenter la même information que sur la carte mais avec une distinction sur l'âge plutôt que géographique. Pour cela, nous avons décidé d'utiliser des diagrammes à barres. En effet, la hauteur des barres permettent de voir instinctivement la tendance et l'évolution entre les tranches d'âge. En fonction de la nature de ce que nous souhaitons mettre en valeur, nous utilisons soit un diagramme à barre classique (pour des entiers, par exemple le nombre moyen d'appareils numériques possédés) ou empilé (pour des choix multiples). De nouveau, ce type de diagramme est très intuitif et compris pas tous, ce qui en fait un graphique simple mais efficace.
Afin de ne pas surcharger la vue, nous avons décidé de n'afficher qu'une seule donnée en même temps (par exemple le nombre moyen d'appareils numériques possédés) et laisser l'utilisateur changer et choisir la donnée qu'il souhaite afficher. Cela permet plus de flexibilité et évite de le submerger de graphiques. Ce choix permet aussi d'ajouter facilement de nouvelles données au site sans en modifier la structure ou la lisibilité. De plus, chaque donnée est accompagnée de plusieurs options qui permettent un filtrage plus fin (par exemple le type d'appareil) permettant à l'utilisateur de se concentrer sur ce qui l'intéresse. En outre, tous les filtres s'appliquent simultanément à la carte et aux diagrammes à barre ce qui permet une navigation plus intuitive et logique. Enfin, un slider permet de sélectionner une année afin de visualiser l'évolution d'une donnée au cours du temps. Nous avons souhaité laisser une grande liberté à l'utilisateur afin qu'il puisse explorer et faire ressortir de la valeur des données par lui-même, c'est pourquoi nous avons mis en place de nombreux filtres (taille de villes, couleurs, choix des variables, affinage des options pour chaque variable, choix de l'année...).