# Composants graphiques (/docs/dashboards/composants-graphiques)



## Vue d'ensemble [#vue-densemble]

Le constructeur expose **12 types de composants graphiques**. Chacun répond à une question différente : « comment ça évolue ? », « comment ça se distribue ? », « combien ça vaut maintenant ? », « est-ce que ça déclenche une alerte ? »

Cette page détaille **chaque composant**, ses **options spécifiques** et ce qu'elles produisent. Pour la liste des indicateurs sélectionnables, voir [Indicateurs disponibles](/docs/dashboards/indicateurs-disponibles).

<VideoAVenir titre="Maîtriser les composants graphiques" />

## Options communes à tous les composants [#options-communes-à-tous-les-composants]

Avant d'entrer dans le détail, voici les options que tu retrouveras sur **tous les composants** (onglet **Général** et **Visuel** du configurateur) :

* **Titre du composant** — texte affiché en en-tête.
* **Largeur** (en colonnes de la grille, de 5 à 50 % de la largeur disponible).
* **Hauteur** (de 50 px « Mini » à 500 px « XXL »).
* **Afficher la légende** — masquable pour gagner de la place.
* **Afficher la grille** — désactivable pour un rendu plus épuré.
* **Afficher les points** sur les courbes / **valeurs sur les points**.
* **Couleurs personnalisées** par indicateur (palette FormaPulse modifiable).

Les composants temporels exposent en plus :

* **Granularité temporelle** : **jour**, **semaine** (agrégation hebdomadaire), **mois** (agrégation mensuelle).
* **Méthode d'agrégation** : moyenne, médiane, somme.
* **Remplacement des valeurs manquantes** : aucun (ignorer), zéro, valeur précédente.

## Détail par composant [#détail-par-composant]

### Courbe [#courbe]

**Évolution temporelle** d'un ou plusieurs indicateurs. Le réflexe pour suivre une métrique dans le temps.

* **Indicateurs supportés** : 1 à 10.
* **Cas d'usage** : suivi de charge UA sur 60 jours, évolution du score de fatigue d'un joueur, courbes croisées charge / RPE / GPS.
* **Options spécifiques** :
  * granularité jour / semaine / mois,
  * agrégation moyenne / médiane / somme,
  * **norme de référence** : ligne horizontale optionnelle (issue d'un test ou d'une valeur GPS), couleur et style configurables (plein, tirets, pointillés),
  * **analyses avancées** disponibles (voir section dédiée plus bas) : moyennes mobiles SMA / EMA, Z-Score, ACWR, zones de sollicitation à la tendance.

### Histogramme [#histogramme]

**Comparaison de valeurs** par période ou par sportif. Idéal pour mettre en avant les écarts.

* **Indicateurs supportés** : 1 à 10.
* **Cas d'usage** : durée de séance par jour, charge totale par semaine, distance GPS par joueur sur le dernier match.
* **Options spécifiques** :
  * mêmes options de granularité, agrégation et valeurs manquantes que la courbe,
  * **empilement des barres** quand plusieurs indicateurs sont sélectionnés,
  * analyses avancées disponibles.

### Aire [#aire]

**Évolution avec remplissage** sous la courbe. Met en valeur les volumes accumulés.

* **Indicateurs supportés** : 1 à 5 (limité pour la lisibilité, l'aire surcharge vite).
* **Cas d'usage** : charge cumulée sur la phase de préparation, distance totale parcourue.
* **Options spécifiques** : identiques à la courbe, avec le remplissage en plus.

### Composé [#composé]

**Double axe Y** mixant barres et lignes. Le composant pour croiser deux ordres de grandeur différents.

* **Indicateurs supportés** : 2 à 10, **répartis explicitement** entre l'axe gauche et l'axe droit.
* **Cas d'usage** : durée de séance (barres, axe gauche, en minutes) + RPE (ligne, axe droit, sur 10) — deux échelles dans un seul graphique.
* **Options spécifiques** :
  * **Type de série par axe** : barres ou ligne (configurable indépendamment à gauche et à droite),
  * **empilement des barres** activable,
  * **analyses avancées** par axe.

### Nuage de points [#nuage-de-points]

**Corrélation entre deux indicateurs**. Un point = une observation.

* **Indicateurs supportés** : exactement **2** (axe X, axe Y).
* **Cas d'usage** : RPE vs charge UA (les joueurs sur-RPE ressortent), distance GPS vs vitesse max, fatigue vs sommeil.
* **Options spécifiques** :
  * **Mode d'affichage** : *Un point par sportif* (chaque joueur = un point) ou *Un point par date* (chaque séance = un point),
  * **Couleur unique** pour tous les points.

### Radar [#radar]

**Profil multidimensionnel**. Une vue synthétique en forme d'étoile.

* **Indicateurs supportés** : 3 à 8.
* **Cas d'usage** : profil physique d'un joueur (vitesse / endurance / explosivité / force / agilité / récupération), comparaison de deux périodes, comparaison équipe vs benchmark.
* **Options spécifiques** :
  * **Mode d'affichage** : *Collectif* (moyenne de l'équipe filtrée) ou *Par sportif* (un polygone par joueur, code couleur).

### Box plot [#box-plot]

**Distribution statistique** : médiane, quartiles, valeurs extrêmes.

* **Indicateurs supportés** : 1 à 5.
* **Cas d'usage** : dispersion de la charge UA dans l'équipe (qui est en haut, qui est en bas), distribution des sprints par séance.
* **Options spécifiques** :
  * **Mode d'affichage** : *Sur la période* (un box plot pour toute la fenêtre filtrée) ou *Sur le jour* (un box plot par jour),
  * **affichage Q1**, **affichage médiane**, **affichage Q3** indépendamment activables.

### Jauge [#jauge]

**Valeur actuelle** avec **seuils** colorés.

* **Indicateurs supportés** : exactement **1**.
* **Cas d'usage** : charge hebdomadaire vs zone optimale, score de fraîcheur, taux de présence de l'équipe sur les 7 derniers jours.
* **Options spécifiques** : min / max et seuils colorés configurables.

### KPI [#kpi]

**Indicateur clé** affiché en gros chiffre, avec **variation période vs période précédente**.

* **Indicateurs supportés** : exactement **1**.
* **Cas d'usage** : distance totale parcourue cette semaine, charge UA moyenne, nombre de sprints — avec tendance ↑ / ↓ vs semaine précédente.
* **Options spécifiques** : format d'affichage, comparaison période sur période.

### Tableau [#tableau]

**Données tabulaires** — jusqu'à **20 colonnes**. Le composant le plus dense pour un compte-rendu.

* **Indicateurs supportés** : 1 à 20.
* **Cas d'usage** : récapitulatif hebdo équipe (1 ligne = 1 joueur, colonnes = charge / GPS / présences / blessures / dernier test), historique chronologique d'un joueur.
* **Options spécifiques** :
  * **Mode d'affichage** : *Par date* (lignes = jours, colonnes = indicateurs agrégés) ou *Par sportif* (lignes = joueurs, colonnes = indicateurs).

### Système d'alerte [#système-dalerte]

**Règles d'alertes personnalisées** avec **scoring par joueur**. Le composant le plus avancé. Voir la section dédiée [Système d'alerte](#système-dalerte---focus) plus bas.

* **Indicateurs supportés** : 1 à 20 (utilisés comme variables des règles).

### Texte [#texte]

**Annotation libre** dans un éditeur de texte riche.

* **Indicateurs supportés** : aucun (composant purement éditorial).
* **Cas d'usage** : titre de section dans un dashboard long, commentaire d'analyse, légende, instructions pour le staff qui consulte.

## Analyses avancées (composants temporels) [#analyses-avancées-composants-temporels]

Pour les composants **Courbe**, **Histogramme**, **Aire** et **Composé**, l'onglet **Analyses** du configurateur ajoute des couches statistiques par-dessus les indicateurs bruts.

### Moyennes mobiles (SMA et EMA) [#moyennes-mobiles-sma-et-ema]

* **SMA** (Simple Moving Average) — moyenne arithmétique sur une fenêtre glissante.
* **EMA** (Exponential Moving Average) — moyenne pondérée qui réagit plus vite aux dernières valeurs.
* **Fenêtres disponibles** : 3, 5, 7, 10, 14, 21, 28, 42, 56, 90 jours.

Tu peux activer plusieurs fenêtres simultanément (ex : SMA 7 + SMA 28 pour comparer court terme et tendance de fond).

### Z-Score [#z-score]

Détecte les **anomalies statistiques** : combien d'écarts-types sépare la valeur du jour de la moyenne récente.

* **Fenêtre** : 5 jours par défaut (ajustable).
* **Seuils** : alerte à **2.0**, critique à **3.0** (visualisés sur le graphique).

### ACWR — Acute:Chronic Workload Ratio [#acwr--acutechronic-workload-ratio]

Le rapport **charge aiguë / charge chronique**, indicateur clé de prévention des blessures.

* **Fenêtre aiguë** : 7 jours par défaut.
* **Fenêtre chronique** : 28 jours par défaut.
* **6 zones de risque** affichées : sous-entraînement sévère / sous-entraînement modéré / **zone optimale** / surcharge modérée / surcharge sévère / non déterminé.
* **Disponible uniquement sur la source Charge** (UA, durée, RPE).

### Zones de sollicitation à la tendance [#zones-de-sollicitation-à-la-tendance]

Découpage en **zones colorées** basé sur la moyenne mobile exponentielle :

* **Zone verte** — sollicitation normale,
* **Zone bleue** — sous-sollicitation,
* **Zone jaune** — sur-sollicitation.

Disponible sur les composants Histogramme, Composé et Tableau (où la notion de zone est lisible).

### Norme de référence [#norme-de-référence]

Ligne horizontale optionnelle, basée sur la valeur d'un **test physique** ou d'une **norme GPS**. Couleur et style configurables (plein, tirets, pointillés). Pratique pour visualiser à quelle distance on est d'un objectif.

## Système d'alerte — focus [#système-dalerte--focus]

Le composant **Système d'alerte** permet de construire des **règles personnalisées** qui scorent chaque joueur.

### Builder de règles [#builder-de-règles]

Une règle compare une **métrique** d'un indicateur à une valeur seuil ou à une autre métrique, avec un comparateur. Plusieurs règles se combinent en **ET / OU** imbriqués.

**Comparateurs (8)** : `<`, `≤`, `=`, `≥`, `>`, `≠`, **entre** \[min, max], **hors de** \[min, max].

**Opérateurs mathématiques entre opérandes (4)** : `+`, `−`, `×`, `÷` — pour bâtir des expressions du type `Charge UA × 0.7 + RPE`.

**Traitement appliqué** avant calcul : granularité (jour / semaine / mois), agrégation (moyenne / somme / min / max / médiane), gestion des valeurs manquantes (ignorer / précédente / zéro).

### Métriques disponibles [#métriques-disponibles]

Les métriques sont organisées en **10 catégories**. Pour chaque indicateur, tu choisis la métrique sur laquelle la règle s'applique :

| Catégorie                  | Exemples                                                          |
| -------------------------- | ----------------------------------------------------------------- |
| **Valeurs**                | Valeur brute, Minimum, Maximum, Première, Dernière                |
| **Moyennes mobiles**       | SMA 3 / 7 / 14 / 21 / 28j (+ custom), MME 7 / 14 / 28j (+ custom) |
| **Variations temporelles** | Δ T-1 (%), Δ T-N (%), Δ T-1 (pts), Δ T-N (pts)                    |
| **Ratio ACWR**             | ACWR SMA (7/28), ACWR EWMA (7/28), versions custom                |
| **Z-Score**                | Z-Score 7j, Z-Score sur fenêtre custom                            |
| **Tendance & Écarts**      | Écart SMA en points / %, Écart MME en points / %                  |
| **Statistiques**           | Q1, Médiane, Q3, Percentile custom, IQR, Écart-type               |
| **Comptages & Séquences**  | Jours ↑ consécutifs, Jours ↓ consécutifs, Jours > seuil           |
| **Accumulation**           | Jours consécutifs / total au-delà d'un seuil (SMA ou MME)         |
| **Dérive**                 | Pente (%/période), Direction de dérive, Dérive détectée           |

### Scoring et niveaux d'importance [#scoring-et-niveaux-dimportance]

Chaque règle se voit assigner un **niveau d'importance** qui définit son poids dans le score global. **5 niveaux** disponibles, chacun associé à une couleur :

| Niveau          | Couleur | Poids |
| --------------- | ------- | ----- |
| **Très faible** | gris    | 1     |
| **Faible**      | vert    | 2     |
| **Moyen**       | jaune   | 3     |
| **Élevé**       | orange  | 4     |
| **Critique**    | rouge   | 5     |

Le composant trie les joueurs par score cumulé et met en avant ceux qui dépassent un seuil. Chaque règle déclenchée affiche en plus une **icône** et une **couleur** que tu choisis librement dans le builder.

### Modes d'affichage [#modes-daffichage]

* **Compact** — ligne par joueur avec score et icônes des règles déclenchées.
* **Détaillé** — historique des déclenchements par joueur sur la fenêtre filtrée.

## Aller plus loin [#aller-plus-loin]

<Cards>
  <Card title="Indicateurs disponibles" href="/docs/dashboards/indicateurs-disponibles" description="Les 6 sources de données qui alimentent les composants." />

  <Card title="Filtres dynamiques" href="/docs/dashboards/filtres-dynamiques" description="Filtrer les composants depuis le header global." />

  <Card title="Constructeur de dashboard" href="/docs/dashboards/construire-dashboard" description="Assembler les composants sur la grille et partager le dashboard." />
</Cards>
