Vega

Étiqueter automatiquement le point maximum

joinaggregate ramène le max global, un filtre isole la ligne correspondante et une couche point + texte la met en évidence — l'annotation suit les données.

Cas d'usage

Pointer le pic historique d'une métrique sans le rechercher à la main.

Prérequis

Vega-Lite v5

Vega-Lite
{
  "$schema": "https://vega.github.io/schema/vega-lite/v5.json",
  "data": {
    "values": [
      { "date": "2026-05-28", "valeur": 2120 },
      { "date": "2026-05-29", "valeur": 2240 },
      { "date": "2026-05-30", "valeur": 1980 },
      { "date": "2026-05-31", "valeur": 1850 },
      { "date": "2026-06-01", "valeur": 2410 },
      { "date": "2026-06-02", "valeur": 2580 },
      { "date": "2026-06-03", "valeur": 2390 },
      { "date": "2026-06-04", "valeur": 3120 },
      { "date": "2026-06-05", "valeur": 2760 },
      { "date": "2026-06-06", "valeur": 2280 },
      { "date": "2026-06-07", "valeur": 2150 },
      { "date": "2026-06-08", "valeur": 2640 }
    ]
  },
  "layer": [
    {
      "mark": "line",
      "encoding": {
        "x": { "field": "date", "type": "temporal", "title": null },
        "y": { "field": "valeur", "type": "quantitative" }
      }
    },
    {
      "transform": [
        { "joinaggregate": [{ "op": "max", "field": "valeur", "as": "vmax" }] },
        { "filter": "datum.valeur >= datum.vmax" }
      ],
      "layer": [
        { "mark": { "type": "point", "size": 110, "color": "#ff00ff", "filled": true },
          "encoding": {
            "x": { "field": "date", "type": "temporal" },
            "y": { "field": "valeur", "type": "quantitative" }
          } },
        { "mark": { "type": "text", "dy": -12, "color": "#ff00ff", "fontWeight": "bold" },
          "encoding": {
            "x": { "field": "date", "type": "temporal" },
            "y": { "field": "valeur", "type": "quantitative" },
            "text": { "field": "valeur", "format": ",.0f" }
          } }
      ]
    }
  ]
}
Vega-LitejoinaggregateMaxAnnotations

Snippets liés

Retour au Data Lab