Module de visualisation interactif pour les indicateurs environnementaux de data.gouv.fr
npm install @ecolabdata/tabular-dataviz chart.jsimport { initializeVisualization } from '@ecolabdata/tabular-dataviz'
import '@ecolabdata/tabular-dataviz/styles/visualisation.css'
// Initialiser toutes les visualisations de la page
initializeVisualization()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>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
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
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"]
}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)
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
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
formatBigNumber(value): Formate les grands nombresnumberWithCommas(value): Ajoute les séparateurs de milliers
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
- Chart.js
- Choices.js
- Être connecté à npm avec un compte ayant les droits sur le scope
@ecolabdata - Avoir configuré l'authentification à deux facteurs (OTP)
- 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-datavizdist/: fichiers JavaScript compiléstypes/: déclarations TypeScriptstyles/: fichiers CSSREADME.md: documentation
- Ecolab, Commissariat général au développement durable, Ministère en charge de l’environnement.
Ce projet est sous licence MIT.