dsfr-data-join
dsfr-data-join joint deux sources de donnees sur une cle pivot pour produire un dataset enrichi.
Supporte les jointures inner, left, right et full.
Reference API complete (attributs, types de jointure, methodes)
dsfr-data-source + dsfr-data-join + dsfr-data-query
dsfr-data-source recupere les donnees depuis une API.
dsfr-data-join croise deux sources sur une cle commune
pour enrichir les donnees. dsfr-data-query filtre, groupe
et trie le resultat. Tous sont des composants invisibles qui se chainent
via le systeme d'evenements.
Population vs Budget — left join, 2 series
Deux sources croisees sur code. Le graphique affiche deux series :
population (source A) et budget (source B) cote a cote.
Tester dans le Playground
<!-- Source A : population (en milliers) -->
<dsfr-data-source id="pop"
data='[
{"code":"75","region":"Ile-de-France","population":12263},
{"code":"13","region":"PACA","population":5099},
{"code":"35","region":"Bretagne","population":3395},
{"code":"14","region":"Normandie","population":3304}
]'>
</dsfr-data-source>
<!-- Source B : budget (en M EUR) -->
<dsfr-data-source id="budget"
data='[
{"code":"75","budget":5200},
{"code":"13","budget":2100},
{"code":"35","budget":1500},
{"code":"14","budget":1400}
]'>
</dsfr-data-source>
<!-- Jointure sur le code region -->
<dsfr-data-join id="enriched"
left="pop" right="budget"
on="code" type="left">
</dsfr-data-join>
<!-- 2 series : population (source A) + budget (source B) -->
<dsfr-data-chart source="enriched" type="bar"
label-field="region"
value-field="population"
value-fields="budget"
title="Population (milliers) vs Budget (M EUR)">
</dsfr-data-chart>
Recettes vs Depenses — inner join + tri
Inner join suivi d'un tri. Deux series comparees cote a cote. La Normandie est exclue car absente de la source depenses. Tester dans le Playground
<!-- Source A : recettes (5 regions) -->
<dsfr-data-source id="recettes"
data='[
{"code":"75","region":"Ile-de-France","recettes":8500},
{"code":"13","region":"PACA","recettes":3200},
{"code":"35","region":"Bretagne","recettes":2100},
{"code":"14","region":"Normandie","recettes":1800},
{"code":"44","region":"Pays de la Loire","recettes":2800}
]'>
</dsfr-data-source>
<!-- Source B : depenses (4 regions, pas de Normandie) -->
<dsfr-data-source id="depenses"
data='[
{"code":"75","depenses":7200},
{"code":"13","depenses":3500},
{"code":"35","depenses":1900},
{"code":"44","depenses":2600}
]'>
</dsfr-data-source>
<!-- Inner join : exclut la Normandie -->
<dsfr-data-join id="merged"
left="recettes" right="depenses"
on="code" type="inner">
</dsfr-data-join>
<!-- Tri par recettes decroissantes -->
<dsfr-data-query id="sorted"
source="merged"
order-by="recettes:desc">
</dsfr-data-query>
<!-- 2 series : recettes vs depenses -->
<dsfr-data-chart source="sorted" type="bar"
label-field="region"
value-field="recettes"
value-fields="depenses"
title="Recettes vs Depenses (M EUR)">
</dsfr-data-chart>