DSFR Chart est un module complémentaire au Système de design de l’État (DSFR) pour la visualisation de données. Il s'agit d'une bibliothèque de composants Vue.js, sous la forme de web-components, à destination des développeurs ayant besoin de graphiques pour représenter des données.
L'ensemble des graphiques disponibles sont mis en situation sur la page de demo.
L'installation de DSFR Chart peut se faire de manières différentes. En téléchargeant l'ensemble des fichiers nécessaires à son utilisation ou en utilisant le gestionnaire de paquets NPM.
Il est possible de télécharger l'ensemble du DSFR au format zip ci-dessous. Le zip contient un ensemble de fichiers CSS et Javascript permettant l'utilisation des différents graphiques.
Vous trouverez sur la page Release de Github, toutes les sources des versions précédentes et la dernière en date.
DSFR Chart est disponible sur NPM via un ensemble de packages qu'il est possible d'ajouter directement à votre projet. Il est de ce fait nécessaire d'installer NodeJS, et d'avoir un fichier package.json à la racine de votre projet. (Il est possible d'en créer un directement via la commande npm init
).
Une fois en place, il suffit d'installer le package dsfr-chart contenant l’ensemble des composants:
npm install @gouvfr/dsfr-chart
Une fois terminé dsfr-chart sera alors installé dans le dossier node_modules/dsfr-chart/
La structure mise à disposition, sur le zip ou npm est la suivante :
Charts : contient les fichiers js et css à importer pour utiliser toutes les représentations disponibles.
Un dossier par type de représentation (ex : LineChart) contenant les fichiers js et css à importer pour l'utilisation d'un seul type de graphique.
DSFR Chart doit être utilisé dans un projet utilisant le DSFR. Le projet doit à minima importer les feuilles css :
Il est également nécessaire de charger l'API Javascript : dsfr.module.min.js
Pour pouvoir utiliser une représentation graphique dans votre projet, il est nécessaire de charger le fichier javascript correspondant ainsi que sa feuille css associée.
Il existe deux possibilités :
<script src="https://github.com/GouvernementFR/dsfr-chart/raw/dev/Charts/dsfr-chart.umd.js"></script>
<link rel="stylesheet" href="https://github.com/GouvernementFR/dsfr-chart/blob/dev/Charts/dsfr-chart.css" />
<script src="https://github.com/GouvernementFR/dsfr-chart/raw/dev/ScatterChart/scatter-chart.umd.js"></script>
<link rel="stylesheet" href="https://github.com/GouvernementFR/dsfr-chart/blob/dev/ScatterChart/scatter-chart.css" />
Ce catalogue présente l'ensemble des graphiques disponibles dans le module complémentaire au Système de design de l'État (DSFR) pour la visualisation de données. Les différents types de graphiques sont disponibles en thème clair et thème sombre. Par ailleurs, les options de chacun des graphiques sont également présentés dans ce document.
Les nuages de points sont accessibles à travers la balise : <scatter-chart>
.
selectedPalette : (String) Permet de choisir la palette de couleurs utilisée pour le graphique. Les valeurs possibles sont :
'categorical'
: Palette catégorielle par défaut.'sequentialAscending'
: Palette séquentielle ascendante.'sequentialDescending'
: Palette séquentielle descendante.'divergentAscending'
: Palette divergente ascendante.'divergentDescending'
: Palette divergente descendante.'neutral'
: Palette neutre.'defaultColor'
: Couleur par défaut.highlightIndex : (Number | Array) Index ou liste d'index des points à mettre en avant (utilisé principalement avec la palette 'neutral'
).
showline : (Boolean) Permet de relier les points du nuage. Mettre à true
pour afficher les lignes entre les points.
Exemple:
<scatter-chart x="[[1, 5, 8]]" y="[[30, 10, 20]]"></scatter-chart>
On peut choisir de relier les points d'un ScatterChart
avec l'option showline. On lui affecte la valeur true
dans le cas où l’on veut relier les points.
Exemple:
<scatter-chart
x="[[1, 5, 8]]"
y="[[30, 10, 20]]"
showline="true"
></scatter-chart>
Vous pouvez spécifier une palette de couleurs pour le graphique en utilisant le paramètre selectedPalette.
Exemple:
<scatter-chart
x="[[1, 5, 8], [2, 6, 9]]"
y="[[30, 10, 20], [15, 25, 35]]"
selectedPalette="divergentAscending"
></scatter-chart>
Pour mettre en avant des points spécifiques, utilisez la palette 'neutral'
et spécifiez les index des points à mettre en avant avec highlightIndex.
Exemple:
<scatter-chart
x="[[1, 5, 8]]"
y="[[30, 10, 20]]"
selectedPalette="neutral"
highlightIndex="[1, 2]"
></scatter-chart>
Il est possible de combiner plusieurs options pour personnaliser davantage votre graphique.
Exemple:
<scatter-chart
x="[[1, 3, 5, 7]]"
y="[[10, 20, 15, 25]]"
showline="true"
selectedPalette="neutral"
highlightIndex="[2]"
></scatter-chart>
'neutral'
, ce paramètre vous permet de mettre en avant des points spécifiques du graphique. Les index commencent à 0.Les graphiques en lignes sont accessibles à travers la balise : <line-chart>
.
selectedPalette : (String) Permet de choisir la palette de couleurs utilisée pour le graphique. Les valeurs possibles sont :
'categorical'
: Palette catégorielle par défaut.'sequentialAscending'
: Palette séquentielle ascendante.'sequentialDescending'
: Palette séquentielle descendante.'divergentAscending'
: Palette divergente ascendante.'divergentDescending'
: Palette divergente descendante.'neutral'
: Palette neutre.'defaultColor'
: Couleur par défaut.highlightIndex : (Number | Array) Index ou liste d'index des points à mettre en avant (utilisé principalement avec la palette 'neutral'
).
unitTooltip : (String) Permet de spécifier l'unité à afficher dans l'infobulle (tooltip) du graphique. Par exemple, %
, €
, $
, etc.
Exemple:
<line-chart x="[1, 2, 3, 4]" y="[10, 20, 30, 40]" unit-tooltip="%"></line-chart>
Exemple:
<line-chart
x="[1, 2, 3, 4]"
y="[10, 20, 30, 40]"
selectedPalette="divergentAscending"
></line-chart>
Exemple:
<line-chart
x="[1, 2, 3, 4]"
y="[10, 20, 30, 40]"
selectedPalette="neutral"
highlightIndex="[2]"
></line-chart>
Exemple:
<line-chart
x="[1, 2, 3, 4]"
y="[1000, 2000, 3000, 4000]"
unit-tooltip="€"
></line-chart>
'neutral'
, ce paramètre vous permet de mettre en avant des points spécifiques du graphique. Les index commencent à 0.x
et y
sont des chaînes représentant des listes, par exemple x="[1, 2, 3]"
.selectedPalette
avec highlightIndex
et unitTooltip
.highlightIndex
correspondent aux positions des points dans vos données y
. Par exemple, highlightIndex="[0]"
mettra en avant le premier point.Exemple:
<line-chart
x="[1, 2, 3, 4, 5]"
y="[15, 25, 35, 45, 55]"
selectedPalette="neutral"
highlightIndex="[2, 4]"
unit-tooltip="kWh"
></line-chart>
Les graphiques en multilignes (ou LineChart multiples) sont accessibles à travers la balise : <multi-line-chart>
.
selectedPalette : (String) Permet de choisir la palette de couleurs utilisée pour le graphique. Les valeurs possibles sont :
'categorical'
: Palette catégorielle par défaut.'sequentialAscending'
: Palette séquentielle ascendante.'sequentialDescending'
: Palette séquentielle descendante.'divergentAscending'
: Palette divergente ascendante.'divergentDescending'
: Palette divergente descendante.'neutral'
: Palette neutre.'defaultColor'
: Couleur par défaut.unitTooltip : (String) Permet de spécifier l'unité à afficher dans l'infobulle (tooltip) du graphique. Par exemple, %
, €
, $
, etc.
Exemple:
<multiline-chart
x="[[1, 2, 3], [1, 2, 3]]"
y="[[30, 10, 20], [10, 20, 30]]"
selectedPalette="divergentAscending"
unit-tooltip="%"
></multiline-chart>
Exemple:
<multiline-chart
x="[[1, 2, 3], [1, 2, 3]]"
y="[[100, 200, 300], [150, 250, 350]]"
selectedPalette="sequentialAscending"
unit-tooltip="€"
></multiline-chart>
Exemple:
<multiline-chart
x="[[1, 2, 3], [1, 2, 3]]"
y="[[5, 15, 25], [10, 20, 30]]"
selectedPalette="neutral"
></multiline-chart>
x
et y
sont des chaînes représentant des listes de listes, par exemple x="[[1, 2, 3], [1, 2, 3]]"
.selectedPalette
et unitTooltip
pour personnaliser davantage votre graphique.Les graphiques en barres sont accessibles à travers la balise : <bar-chart>
.
name : (String) Les noms des séries de données sous forme d'une liste entre crochets.
selectedPalette : (String) Permet de choisir la palette de couleurs utilisée pour le graphique. Les valeurs possibles sont :
'categorical'
: Palette catégorielle par défaut.'sequentialAscending'
: Palette séquentielle ascendante.'sequentialDescending'
: Palette séquentielle descendante.'divergentAscending'
: Palette divergente ascendante.'divergentDescending'
: Palette divergente descendante.'neutral'
: Palette neutre.'defaultColor'
: Couleur par défaut.highlightIndex : (Array) Liste d'index des barres à mettre en avant (utilisé principalement avec la palette 'neutral'
).
isDescendingOrder : (Boolean) Permet d'inverser l'ordre des couleurs dans la légende et le graphique pour certaines palettes. Mettre à true
pour inverser l'ordre, par exemple pour afficher une progression de vert à rouge.
unitTooltip : (String) Permet de spécifier l'unité à afficher dans l'infobulle (tooltip) du graphique. Par exemple, %
, €
, $
, etc.
horizontal : (Boolean) Permet d'afficher le graphique en barres horizontales. Mettre à true
pour activer.
stacked : (Boolean) Permet d'empiler les barres pour afficher des données empilées. Mettre à true
pour activer.
Exemple:
<bar-chart
x='[["2025", "2030", "2035", "2040", "2050", "2060", "2070"]]'
y="[[69.1, 70.3, 71.4, 72.5, 74, 75.2, 76.4]]"
name='["Population en millions"]'
selected-palette="defaultColor"
unit-tooltip="millions"
></bar-chart>
Pour tracer un BarChart horizontal, il faut renseigner l’option horizontal="true".
Exemple:
<bar-chart
x='[["2025", "2030", "2035", "2040"]]'
y="[[10, 20, 30, 40]]"
horizontal="true"
selected-palette="categorical"
></bar-chart>
Pour tracer un BarChart empilé, il faut renseigner l’option stacked="true".
Exemple:
<bar-chart
x='[["Catégorie A", "Catégorie B", "Catégorie C", "Catégorie D"]]'
y="[[15, 19, 15, 13], [45, 40, 47, 41], [36, 32, 34, 44], [4, 9, 4, 2]]"
name='["Série 1", "Série 2", "Série 3", "Série 4"]'
stacked="true"
selected-palette="divergentDescending"
:isDescendingOrder="true"
unit-tooltip="%"
></bar-chart>
Utilisez highlightIndex pour mettre en avant certaines barres, en combinaison avec selectedPalette="neutral".
Exemple:
<bar-chart
x='[["Jan", "Feb", "Mar", "Apr", "May", "Jun"]]'
y="[[5, 10, 15, 20, 25, 30]]"
selected-palette="neutral"
:highlightIndex="[2, 4]"
unit-tooltip="k€"
></bar-chart>
Exemple:
<bar-chart
x='[["Q1", "Q2", "Q3", "Q4"]]'
y="[[200, 400, 600, 800]]"
selected-palette="sequentialAscending"
unit-tooltip="units"
></bar-chart>
'neutral'
, ce paramètre vous permet de mettre en avant des barres spécifiques du graphique. Les index commencent à 0.x
et y
sont des chaînes représentant des listes de listes, par exemple x='[["Label1", "Label2"]]'
et y='[[10, 20], [30, 40]]'
.horizontal="true"
avec stacked="true"
.highlightIndex
correspondent aux positions des barres dans vos données x
. Par exemple, :highlightIndex="[0, 2]"
mettra en avant la première et la troisième barre.Exemple:
<bar-chart
x='[["Produit A", "Produit B", "Produit C", "Produit D"]]'
y="[[50, 70, 30, 90]]"
name='["Ventes"]'
selected-palette="neutral"
:highlightIndex="[3]"
horizontal="true"
unit-tooltip="k€"
></bar-chart>
Sur tous les graphiques présentés ci-dessus, il est possible d'ajouter des lignes verticales et horizontales pour mettre en évidence des seuils ou des valeurs spécifiques.
<line-chart
x="[1, 2, 3]"
y="[10, 20, 30]"
hline="[15, 25]"
hlinename='["hmin", "hmax"]'
vline="[1.6, 2.3]"
vlinename='["vmin","vmax"]'
vlinecolor='["green-archipel", "orange-terre-battue"]'
hlinecolor='["blue-ecume", "red-marianne"]'
selectedPalette="categorical"
unit-tooltip="units"
></line-chart>
"#FF5733"
).Correspondance des listes : Assurez-vous que les listes pour les positions, les noms et les couleurs des lignes ont le même nombre d'éléments.
hline
, vous devez avoir deux valeurs dans hlinename
et hlinecolor
.Personnalisation des couleurs : Si vous n'indiquez pas de couleurs spécifiques pour les lignes, des couleurs par défaut seront utilisées.
Visualisation des seuils : L'ajout de lignes de référence est utile pour visualiser des seuils, des moyennes ou d'autres valeurs importantes sur le graphique.
<bar-line-chart
x="[1, 2, 3, 4, 5]"
y="[20, 25, 30, 35, 40]"
ybar="[15, 18, 22, 28, 33]"
hline="[25]"
hlinename='["Moyenne"]'
hlinecolor='["#FF0000"]'
vline="[3]"
vlinename='["Point Milieu"]'
vlinecolor='["#0000FF"]'
selectedPalette="sequentialAscending"
unit-tooltip="kW"
></bar-line-chart>
Les diagrammes circulaires (ou PieChart) sont accessibles à travers la balise : <pie-chart>
.
name : (String) Les noms des séries de données sous forme d'une liste entre crochets.
selectedPalette : (String) Permet de choisir la palette de couleurs utilisée pour le graphique. Les valeurs possibles sont :
'categorical'
: Palette catégorielle par défaut.'sequentialAscending'
: Palette séquentielle ascendante.'sequentialDescending'
: Palette séquentielle descendante.'divergentAscending'
: Palette divergente ascendante.'divergentDescending'
: Palette divergente descendante.'neutral'
: Palette neutre.'defaultColor'
: Couleur par défaut.unitTooltip : (String) Permet de spécifier l'unité à afficher dans l'infobulle (tooltip) du graphique. Par exemple, %
, €
, $
, etc.
fill : (Boolean) Permet de remplir l’intérieur du graphique. Mettre à true
pour un diagramme circulaire plein.
<pie-chart
x='["Non-salariés", "Emplois à durée indéterminée", "Contrats à durée déterminée", "Apprentis", "Intérimaires"]'
y="[11.7, 74.8, 9.3, 1.6, 2.6]"
name='["Non-salariés", "Emplois à durée indéterminée", "Contrats à durée déterminée", "Apprentis", "Intérimaires"]'
unit-tooltip="%"
selectedPalette="categorical"
></pie-chart>
L’option fill="true" permet de remplir l’intérieur du graphique pour obtenir un diagramme circulaire plein.
<pie-chart
x='["Groupe A", "Groupe B", "Groupe C"]'
y="[10, 20, 30]"
fill="true"
unit-tooltip="%"
selectedPalette="divergentAscending"
></pie-chart>
x
et y
sont des chaînes représentant des listes, par exemple x='["Groupe A", "Groupe B"]'
.fill="true"
avec selectedPalette
.name
peut être utilisé pour spécifier des noms de séries personnalisés.<pie-chart
x='["Catégorie 1", "Catégorie 2", "Catégorie 3"]'
y="[40, 35, 25]"
fill="true"
unit-tooltip="€"
selectedPalette="sequentialDescending"
></pie-chart>
Les diagrammes en étoile (ou RadarChart) sont accessibles à travers la balise : <radar-chart>
.
x : (String) Les noms de chaque groupe sous la forme d’une liste de listes entre crochets.
y : (String) Les valeurs de chaque groupe sous la forme d’une liste de listes entre crochets.
name : (String) Les noms des séries de données sous forme d'une liste entre crochets.
selectedPalette : (String) Permet de choisir la palette de couleurs utilisée pour le graphique. Les valeurs possibles sont :
'categorical'
: Palette catégorielle par défaut.'sequentialAscending'
: Palette séquentielle ascendante.'sequentialDescending'
: Palette séquentielle descendante.'divergentAscending'
: Palette divergente ascendante.'divergentDescending'
: Palette divergente descendante.'neutral'
: Palette neutre.'defaultColor'
: Couleur par défaut.unitTooltip : (String) Permet de spécifier l'unité à afficher dans l'infobulle (tooltip) du graphique. Par exemple, %
, €
, $
, etc.
<radar-chart
x='[["Non-salariés", "Emplois à durée indéterminée", "Contrats à durée déterminée", "Apprentis", "Intérimaires"]]'
y="[[2.4, 43.9, 28.5, 17.2, 8.0],
[10.6, 77.8, 8.8, 0.2, 2.6],
[16.5, 77.3, 4.9, 0.0, 1.3]]"
name='["15-24 ans", "25-49 ans", "50-64 ans"]'
selectedPalette="categorical"
unit-tooltip="%"
>
</radar-chart>
selectedPalette : Ce paramètre vous permet de personnaliser les couleurs utilisées dans le graphique. Choisissez parmi les options disponibles pour représenter vos données de manière appropriée.
unitTooltip : Ce paramètre vous permet de spécifier l'unité qui sera affichée dans l'infobulle (tooltip) lorsque l'utilisateur survole une valeur du graphique. Cela rend la lecture des valeurs plus intuitive en indiquant l'unité de mesure.
Format des données : Assurez-vous que les valeurs de x
et y
sont des chaînes représentant des listes de listes. Par exemple :
x
: x='[["Label1", "Label2", "Label3"]]'
y
: y='[[10, 20, 30], [15, 25, 35]]'
Combinaison des options : Vous pouvez combiner plusieurs options pour personnaliser davantage votre graphique, comme utiliser selectedPalette
avec unitTooltip
.
Personnalisation des séries : Le paramètre name
est utilisé pour spécifier les noms des séries de données. Si vous avez plusieurs séries (plusieurs listes dans y
), vous devez fournir une liste de noms correspondante dans name
.
<radar-chart
x='[["Critère 1", "Critère 2", "Critère 3", "Critère 4", "Critère 5"]]'
y="[[80, 90, 70, 60, 50], [60, 70, 80, 90, 100]]"
name='["Série A", "Série B"]'
selectedPalette="divergentAscending"
unit-tooltip="%"
>
</radar-chart>
<radar-chart
x='[["Vitesse", "Puissance", "Agilité", "Endurance", "Précision"]]'
y="[[85, 90, 75, 80, 70]]"
name='["Athlète 1"]'
unit-tooltip="points"
>
</radar-chart>
Ce graphique est généré avec la balise <gauge-chart>
Les paramètres obligatoires sont :
· value : la valeur actuelle de la jauge sous la forme d’une un nombre
· init : la valeur de départ de la jauge
· target : la valeur cible de la jauge
<gauge-chart value="16" init="10" target="20" color="blue-france"></gauge-chart>
Les cartes sont accessibles à travers la balise : <map-chart>
.
data : (String) Un dictionnaire qui, pour chaque numéro de département ou de région, associe la valeur de l’indicateur dans cette zone géographique.
valuenat : (String | Number) La valeur de l'indicateur à l'échelle nationale. Cette valeur sera affichée dans la barre latérale.
name : (String) Nom de l'indicateur.
level : (String) Choix du niveau de zoom. Les valeurs possibles sont :
'dep'
: Carte avec découpage par départements (par défaut).'reg'
: Carte avec découpage par régions.selectedPalette : (String) Permet de choisir la palette de couleurs utilisée pour la carte. Les valeurs possibles sont :
'categorical'
'sequentialAscending'
(par défaut)'sequentialDescending'
'divergentAscending'
'divergentDescending'
'neutral'
-1
signifie aucune mise en avant.<map-chart
data='{
"01": 72, "02": 83, "03": 67, "04": 36, "05": 47, "06": 96, "07": 77, "08": 75, "09": 57, "10": 58,
"11": 38, "12": 33, "13": 89, "14": 24, "15": 52, "16": 41, "17": 79, "18": 38, "19": 42, "21": 25,
"22": 26, "23": 37, "24": 65, "25": 88, "26": 48, "27": 61, "28": 80, "29": 12, "30": 6, "31": 5,
"32": 22, "33": 40, "34": 19, "35": 13, "36": 32, "37": 0, "38": 82, "39": 13, "40": 78, "41": 92,
"42": 10, "43": 22, "44": 70, "45": 85, "46": 58, "47": 72, "48": 61, "49": 27, "50": 47, "51": 41,
"52": 44, "53": 29, "54": 22, "55": 4, "56": 57, "57": 94, "58": 46, "59": 33, "60": 0, "61": 15,
"62": 60, "63": 71, "64": 0, "65": 91, "66": 51, "67": 56, "68": 19, "69": 44, "70": 92, "71": 96,
"72": 51, "73": 32, "74": 19, "75": 96, "76": 91, "77": 21, "78": 48, "79": 72, "80": 52, "81": 48,
"82": 57, "83": 38, "84": 23, "85": 46, "86": 37, "87": 64, "88": 78, "89": 100, "90": 85, "91": 87,
"92": 46, "93": 89, "94": 18, "95": 72, "971": 48, "972": 28, "973": 35, "974": 70, "976": 38, "2A": 63,
"2B": 16
}'
valuenat="10"
name="Nom de l'indicateur"
selected-palette="sequentialAscending"
:highlightIndex='["75", "13"]'
></map-chart>
<map-chart
data='{
"84": 1, "32": 10, "93": 20, "44": 30, "76": 40, "28": 50, "75": 60, "24": 70, "53": 80, "94": 90,
"52": 100, "01": 95, "02": 85, "03": 75, "04": 65, "06": 55, "27": 100, "11": 35
}'
valuenat="10"
name="Nom de l'indicateur"
level="reg"
selected-palette="divergentDescending"
:highlightIndex='["84", "93"]'
></map-chart>
Les cartes par région sont accessibles à travers la balise : <map-chart-reg>
.
data : (String) Un dictionnaire qui, pour chaque numéro de département, associe la valeur de l’indicateur dans ce département.
valuereg : (String | Number) La valeur de l'indicateur à l'échelle régionale. Cette valeur sera affichée dans la barre latérale.
name : (String) Nom de l'indicateur.
region : (String) Code de la région à afficher.
selectedPalette : (String) Palette de couleurs utilisée pour la carte (identique à MapChart).
highlightIndex : (Number | String | Array) Code ou liste des codes des départements à mettre en avant.
<map-chart-reg
data='{
"01": 72, "02": 83, "03": 67, "04": 36, "05": 47, "06": 96, "07": 77, "08": 75, "09": 57, "10": 58,
"11": 38, "12": 33, "13": 89, "14": 24, "15": 52, "16": 41, "17": 79, "18": 38, "19": 42, "21": 25,
"22": 26, "23": 37, "24": 65, "25": 88, "26": 48, "27": 61, "28": 80, "29": 12, "30": 6, "31": 5,
"32": 22, "33": 40, "34": 19, "35": 13, "36": 32, "37": 0, "38": 82, "39": 13, "40": 78, "41": 92,
"42": 10, "43": 22, "44": 70, "45": 85, "46": 58, "47": 72, "48": 61, "49": 27, "50": 47, "51": 41,
"52": 44, "53": 29, "54": 22, "55": 4, "56": 57, "57": 94, "58": 46, "59": 33, "60": 0, "61": 15,
"62": 60, "63": 71, "64": 0, "65": 91, "66": 51, "67": 56, "68": 19, "69": 44, "70": 92, "71": 96,
"72": 51, "73": 32, "74": 19, "75": 96, "76": 91, "77": 21, "78": 48, "79": 72, "80": 52, "81": 48,
"82": 57, "83": 38, "84": 23, "85": 46, "86": 37, "87": 64, "88": 78, "89": 100, "90": 85, "91": 87,
"92": 46, "93": 89, "94": 18, "95": 72, "971": 48, "972": 28, "973": 35, "974": 70, "976": 38, "2A": 63,
"2B": 16
}'
valuereg="10"
name="Nom de l'indicateur"
region="93"
selected-palette="categorical"
:highlightIndex='["93", "84"]'
></map-chart-reg>
selectedPalette : Ce paramètre vous permet de personnaliser les couleurs utilisées sur la carte. Les palettes disponibles permettent de représenter les données selon différentes échelles de couleurs.
highlightIndex : Vous pouvez mettre en avant certaines zones géographiques en spécifiant leurs codes dans une liste. Les zones mises en avant seront affichées avec une couleur différente pour attirer l'attention.
level : Par défaut, la carte affiche le découpage par départements ('dep'
). En spécifiant level="reg"
, vous pouvez afficher la carte avec le découpage par régions.
Format des données : Les clés du dictionnaire data
doivent correspondre aux codes des départements ou régions (par exemple, "75"
pour Paris, "84"
pour la région Auvergne-Rhône-Alpes).
Combinaison des options : Vous pouvez combiner plusieurs options pour personnaliser votre carte, comme utiliser selectedPalette
avec highlightIndex
.
Personnalisation des couleurs : Si vous souhaitez mettre en avant certaines zones, utilisez le paramètre highlightIndex
en combinaison avec une palette appropriée.
<map-chart
data='{"01": 72, "02": 83, "03": 67, "04": 36, "05": 47}'
valuenat="65"
name="Taux de réussite"
selected-palette="neutral"
:highlightIndex='["01", "02"]'
level="dep"
></map-chart>
paramètre | type | obligatoire | description |
---|---|---|---|
data | string | oui | dictionnaire associant les codes des départements aux valeurs de l'indicateur |
valuereg | string ou number | oui | Valeur de l'indicateur à l'échelle nationale |
name | string | oui | nom de l'indicateur |
level | String ('dep' ou 'reg') | Non | Niveau de zoom de la carte ('dep' pour départements, 'reg' pour régions) |
selectedpalette | string | non | palette de couleurs utilisée pour la carte |
highlightIndex | Number, String ou Array | non | Code ou liste des codes géographiques à mettre en avant |
paramètre | type | obligatoire | description |
---|---|---|---|
data | string | oui | dictionnaire associant les codes des départements aux valeurs de l'indicateur |
valuereg | string ou number | oui | valeur de l'indicateur à l'échelle régionale |
name | string | oui | nom de l'indicateur |
region | string | oui | code de la région à afficher |
selectedpalette | string | non | palette de couleurs utilisée pour la carte |
Le composant DataBox
est un composant polyvalent qui permet d'afficher des données sous différentes formes, notamment des indicateurs, des graphiques, des tableaux, etc. Il intègre également des fonctionnalités interactives telles que des sélecteurs de sources, des modales, et des menus déroulants pour des actions supplémentaires.
Pour utiliser le composant DataBox
, vous devez l'importer dans votre fichier Vue :
javascript
Copier le code
import DataBox from './DataBox.vue';
<data-box
:dataBoxTitle="Votre titre"
:dataBoxDescription="Votre description"
:value="1500"
:indicator="true"
:trendValue="'5%'"
:component="'PieChart'"
:serieObj="serieObj"
:source="'Source de données'"
:dataBoxDate="'2024-04-22'"
></data-box>
Voici la liste des props disponibles pour le composant DataBox
:
dataBoxTitle (String)
(par défaut : "Titre de la dataBox")
Titre affiché en haut de la DataBox.
dataBoxDescription (String)
(par défaut : "Description de la dataBox.")
Description affichée dans l'infobulle associée au titre.
indicator (Boolean)
(par défaut : false)
Indique si la DataBox affiche un indicateur principal (valeur) avec une tendance.
trendValue (String)
(par défaut : "5")
Valeur de la tendance (hausse ou baisse) affichée à côté de l'indicateur principal.
value (String)
(par défaut : "1500")
Valeur de l'indicateur principal affichée dans la DataBox.
component (String)
(par défaut : "PieChart")
Nom du composant de graphique à afficher dans la DataBox. Les options possibles sont : "PieChart"
, "BarChart"
, "MultiLineChart"
, "MapChart"
, etc.
serieObj (Object)
Objet contenant les données à afficher dans le graphique ou le tableau. Voir la section Structure de serieObj
.
addSources (Boolean)
(par défaut : false)
Affiche un sélecteur de sources si défini à true
.
select_options (Array)
(par défaut : [{ value: "ubm", label: "Exposition médiatique" }])
Liste des options pour le sélecteur de sources.
option_default (String)
(par défaut : "ubm")
Valeur par défaut sélectionnée dans le sélecteur de sources.
captionTitle (String)
(par défaut : "Titre du tableau")
Titre du tableau si un tableau est affiché.
isMultilineTableHeader (Boolean)
(par défaut : true)
Indique si l'en-tête du tableau peut être sur plusieurs lignes.
dataBoxDate (String)
(par défaut : "2024-04-22")
Date des données affichées, formatée en YYYY-MM-DD
.
source (String)
(par défaut : "SIG")
Source des données affichées dans la DataBox.
modalSettings (Object)
Paramètres pour la modale associée à la DataBox.
hasModal (Boolean)
(par défaut : false)
Indique si une modale est associée à la DataBox.
modalId (String)
(par défaut : "fr-modal-1")
Identifiant unique de la modale.
dropdownActions (Array)
Liste des actions disponibles dans le menu déroulant.
(String)
: Identifiant unique de l'action.(String)
: Label pour l'accessibilité.(String)
: Nom de la méthode à exécuter lors du clic.unitTooltip (String)
(par défaut : "")
Unité à afficher dans l'infobulle du graphique.
serieObj
L'objet serieObj
contient les données nécessaires pour alimenter le graphique ou le tableau. Voici sa structure par défaut :
javascript
serieObj: { showGraph: true, unitTooltip: "%", serie_values: { x: ["Serie 1", "Serie 2", "Serie 3"], y: [100, 200, 300], name: ["Nom Serie 1", "Nom Serie 2", "Nom Serie 3"], color: ["#FF0000", "#00FF00", "#0000FF"], // Autres propriétés spécifiques au type de graphique }, table: [ ["Serie 1", "100"], ["Serie 2", "200"], ["Serie 3", "300"], ], istable: false, // Indique si le tableau doit être affiché id_accordion: "uniqueId", // Identifiant pour les contrôles segmentés }
serieObj
:unitTooltip
).Le composant DataBox
expose plusieurs méthodes internes :
DD/MM/YYYY
.viewType
peut être "graphique"
ou "tableau"
).select-source-api
avec l'option sélectionnée en paramètre.Le composant DataBox
ne définit pas de slots.
serieObj
.Le composant utilise des styles spécifiques définis dans dataBox.scss
. Il importe également des composants et styles de l'application (par exemple, les styles des boutons, infobulles, etc.).
<data-box
dataBoxTitle="Nombre de visiteurs"
dataBoxDescription="Nombre total de visiteurs sur le site en 2023"
value="1500"
indicator="true"
trendValue="-5%"
source="Google Analytics"
dataBoxDate="2023-10-01"
></data-box>
<data-box
dataBoxTitle="Répartition des ventes par produit"
component="PieChart"
:serieObj="{
showGraph: true,
serie_values: {
x: ['Produit A', 'Produit B', 'Produit C'],
y: [30, 50, 20],
},
table: [
['Produit A', '30'],
['Produit B', '50'],
['Produit C', '20'],
],
}"
source="Base de données interne"
dataBoxDate="2023-09-15"
></data-box>
<data-box
dataBoxTitle="Liste des utilisateurs inscrits"
:serieObj="{
showGraph: false,
istable: true,
table: [
['Nom', 'Email'],
['Alice', 'alice@example.com'],
['Bob', 'bob@example.com'],
['Charlie', 'charlie@example.com'],
],
}"
source="Système d'inscription"
dataBoxDate="2023-08-20"
></data-box>
Le composant DataBox
est conçu pour être hautement personnalisable et interactif. Vous pouvez :
indicator
, addSources
, etc.).dropdownActions
et en implémentant les méthodes correspondantes.PieChart
, BarChart
, MultiLineChart
, SelectSource
, SegmentedControls
, TableVue
, et MapChart
. Assurez-vous que ces composants sont correctement importés et enregistrés dans votre application.Le composant inclut des considérations pour l'accessibilité, comme l'utilisation d'aria-label
, aria-describedby
, et des rôles appropriés pour les infobulles et les modales.
Les résultats peuvent également être présenté sous la forme d'un tableau. Ceci permet dans certaines situations d'offrir une alternative à la visualisation des données et ainsi s'adapter au public concerné.
Les paramètres obligatoires sont :
x : les noms de chaque groupe sous la forme d’une liste entre crochets
y : les valeurs de chaque groupe sous la forme d’une liste entre crochets
Il est possible d’ajouter une ou plusieurs barres verticales par l’intermédiaire du paramètre :
Par défaut la couleur de la ligne sera #161616 et son nom V1, V2, … Cela peut être modifié en renseignant les paramètres :
vlinecolor : La ou les couleur(s) sous forme d’une liste entre crochets
vlinename : Le ou les nom(s) sous la forme d’une liste entre crochets
Exemple :
<line-chart
x="[1, 2, 3]"
y="[10, 20, 30]"
vline="[1.5, 2.5]"
vlinename='["min", "max"]'
vlinecolor='["green-archipel", "blue-ecume"]'
></line-chart>
Il est possible d’ajouter une ou plusieurs barre(s) verticale(s) par l’intermédiaire du paramètre :
Par défaut la couleur de la ligne sera #009081 et son nom H1, H2, … Cela peut être modifié en renseignant les paramètres :
hlinecolor : La ou les couleur(s) sous forme d’une liste entre crochets
hlinename : Le ou les nom(s) sous la forme d’une liste entre crochets
Exemple :
<line-chart
x="[1, 2, 3]"
y="[10, 20, 30]"
hline="[15, 25]"
hlinename='["min", "max"]'
hlinecolor='["green-archipel", "blue-ecume"]'
></line-chart>
Le processus de contribution est détaillé sur la page CONTRIBUTING.md.