@ecolabdata/tabular-dataviz
v1.3.3
Published
Interactive data visualization library for data.gouv.fr tabular datasets
Maintainers
Readme
@ecolabdata/tabular-dataviz
Module de visualisation interactif pour les indicateurs environnementaux de data.gouv.fr
Installation
npm install @ecolabdata/tabular-dataviz chart.jsUtilisation
Import ES Module
import { initializeVisualization } from '@ecolabdata/tabular-dataviz'
import '@ecolabdata/tabular-dataviz/styles/visualisation.css'
// Initialiser toutes les visualisations de la page
initializeVisualization()Configuration
Le module recherche automatiquement les éléments avec la classe indicator-viz et initialise les visualisations selon les données fournies via les attributs data-*.
<div
class="indicator-viz"
data-indicator-id="67cad6f3b0a47a080da80278"
data-files="[données encodées]"
data-indicator="[indicateur encodé]"
data-tabular-api-url="https://tabular-api.data.gouv.fr"
></div>Fonctionnalités
Le module permet de visualiser les données des indicateurs avec :
- Choix de la maille : nationale, régionale, départementale, inter-communale
- Choix du territoire : par exemple Auvergne Rhône-Alpes pour la maille régionale
- Filtres sur les axes : représentent les colonnes dans les fichiers CSV
- Graphique interactif : courbe simple ou séparée selon les axes de l'indicateur
Structure des données
Fichiers
Chaque fichier doit contenir :
date_mesure: datetime qui représente l'année de la donnée (ex:2018-01-01T00:00:00.000pour 2018)- Colonne géographique :
geocode_region,geocode_dpt,geocode_departement,geocode_epciPour la maille nationale, pas besoin de colonne géographique
- Colonne de valeur principale : la valeur à visualiser
- Colonnes des axes : dimensions de l'indicateur
Meta-données des fichiers
Disponibles dans file.extras['ecospheres-indicateurs'] :
{
"maille": "region",
"value-column": "emission_co2",
"axes": {
"secteur": ["tertiaire", "industrie"],
"type_energie": ["electricité", "charbon"]
}
}maille:fr,region,departement,epcivalue-column: nom de la colonne contenant la valeur principaleaxes: objet avec les noms des colonnes des axes
Seules les clés de l'objet axes sont utilisées par le module. On lui passe donc une simple liste des clés.
{
"maille": "region",
"value-column": "emission_co2",
"axes": ["secteur", "type_energie"]
}Meta-données de l'indicateur
Disponibles dans les données originales sous indicator.extras['ecospheres-indicateurs'] :
{
"unite": "tonnes CO₂",
"summable": true,
"enable_visualization": true,
"y_start_at_zero": false,
"ignore_format_big_number": false
}et transmis au composant de visualisation sous la forme :
{
"id": "xxx",
"unite": "tonnes CO₂",
"summable": false,
"enableVisualisation": false,
"yStartAtZero": false,
"ignoreFormatBigNumber": false
}unite: texte représentant l'unité (ex:%,tonnes)summable: booléen indiquant si les valeurs sont sommables (défautfalse)enableVisualization: booléen pour activer/désactiver la visualisation (défautfalse)yStartAtZero: booléen pour forcer l'axe Y à commencer à 0 (défautfalse)ignoreFormatBigNumber: booléen ignorer le formattage des unités avec k, M, Md (défautfalse)
Attributs HTML
data-indicator-id: ID de l'indicateur à visualiserdata-files: liste des fichiers encodée avecencodeURIComponent(JSON.stringify(files))data-indicator: objet indicateur encodé avecencodeURIComponent(JSON.stringify(indicator))data-tabular-api-url: URL de l'API tabular (optionnel, par défauthttps://tabular-api.data.gouv.fr)data-chart-title: Titre (optionnel) à afficher au-dessus du graphique
API
Fonctions principales
initializeVisualization(options): Initialise les visualisations de la pagemakeChart(indicator): Crée ou met à jour un graphiquefetchData(indicator): Récupère les données via l'API tabular
Utilitaires
formatBigNumber(value): Formate les grands nombresnumberWithCommas(value): Ajoute les séparateurs de milliers
Choix technique
Le module utilise du JavaScript vanilla pour une compatibilité maximale avec différentes plateformes.
L'appel aux données se fait via l'API "tabular" de data.gouv.fr qui permet de faire des requêtes HTTP pour interroger les données de fichiers (l'API transforme la requête HTTP en requête SQL).
Documentation de l'API : https://github.com/datagouv/api-tabular
Dépendances
- Chart.js
- Choices.js
📦 Publication sur npm
Prérequis
- Être connecté à npm avec un compte ayant les droits sur le scope
@ecolabdata - Avoir configuré l'authentification à deux facteurs (OTP)
Processus de publication
- Nettoyage et mise à jour de la version :
# cleanup to avoid cache problems
rm -rf dist node_modules
npm install
# Version patch (1.0.0 → 1.0.1)
npm version patch
# Version minor (1.0.0 → 1.1.0)
npm version minor
# Version major (1.0.0 → 2.0.0)
npm version major- Construction et vérification :
npm run build
# Vérifier que la version dans le build correspond à package.json
grep 'var version' dist/index.js- Publication :
npm publish --access public --otp=123456
# publier une version de dev
npm run dev-publish
# sur le projet parent : npm install @ecolabdata/tabular-dataviz@devRemplacer 123456 par le code OTP de votre application d'authentification.
- Vérification :
npm view @ecolabdata/tabular-datavizStructure des fichiers publiés
dist/: fichiers JavaScript compiléstypes/: déclarations TypeScriptstyles/: fichiers CSSREADME.md: documentation
👥 Auteurs
- Ecolab, Commissariat général au développement durable, Ministère en charge de l’environnement.
📄 Licence
Ce projet est sous licence MIT.
