Carte de chaleur pour Power BI Heatmap Plume
Une grille, un calendrier ou les heures d'affluence : la couleur de chaque case dit où se concentrent les valeurs.
Démo interactive
Le vrai visuel Power BI, exécuté dans votre navigateur avec les données fictives du rapport d'exemple. Changez de scénario, de style ou d'année : le visuel se met à jour comme dans Power BI. Fonctions premium ★ montrées ici sans filigrane ; dans Power BI, sans licence, elles affichent « Plume Visuals · Aperçu premium ».
Dans Power BI, une carte de chaleur se bricole avec la mise en forme conditionnelle d'une matrice : pas de calendrier, pas de jour × heure, pas de légende. Heatmap Plume colore chaque case selon sa valeur et l'écrit dedans quand elle tient (en blanc sur les cases foncées). Lignes + Colonnes donnent une grille ; une simple Date donne un calendrier jour par jour, une grille jour de la semaine × heure (date-heure) ou année × mois. Une légende graduée ou en classes, des cases vides hachurées (jamais confondues avec zéro), le tri par total ou par colonne. En premium : l'axe de lecture (les couleurs évoluent d'une année à l'autre sur la même échelle), l'échelle divergente, les pourcentages et les totaux en marge, quantiles, seuils, racine carrée et échelle logarithmique, échelle par ligne, lignes semblables regroupées avec leur dendrogramme, carte radiale, jours fériés de 7 pays, annotations, comparaison à une référence, taille des cases selon une mesure, petits multiples.
Cas d'usage
- CA par rayon et par mois, les rayons triés par total
- Visiteurs par jour sur deux ans (calendrier), jours fériés et événements marqués
- Appels reçus par jour de la semaine et par heure, à partir d'une simple date-heure
- Écart de température à la normale, année × mois, sur une échelle divergente ★
GratuitInclus gratuitement
- Grille Lignes × Colonnes, ou une Date seule : calendrier, jour × heure, année × mois (hiérarchie de dates reconstituée)
- Échelle continue ou en classes égales ; une teinte ou palette du style ; minimum et maximum
- Valeurs dans les cases, texte lisible sur toutes les couleurs ; cases vides hachurées
- Légende graduée ou en classes, cliquable ; tri par nom, total, colonne, N premières lignes
- Calendrier en semaines ou en mois, premier jour de la semaine, week-ends, plage d'heures
- Couleurs des classes (une couleur par classe, comme les règles natives), épaisseur du contour des cases ; échelle gardée sous un filtre
- Sélection de cases, de lignes, de colonnes, filtre croisé, surbrillance, infobulles, clavier, contraste élevé, formats dynamiques, 30 000 lignes et plus
PremiumFonctions premium
- Axe de lecture : les couleurs évoluent d'une image à l'autre (lecteur commun, même échelle pour toutes les images)
- Échelle divergente (milieu : zéro, moyenne, médiane, valeur), quantiles, seuils, racine carrée, logarithmique, extrêmes ignorés ; échelle par ligne ou par colonne
- Étiquettes en % de la ligne, de la colonne ou du total ; totaux en marge (valeurs ou barres)
- Lignes semblables côte à côte (similarité) avec leur dendrogramme
- Carte radiale (24 heures ou 12 mois en cercle)
- Jours fériés de 7 pays et annotations (mesure de texte) dans les cases
- Comparaison à une référence (écart favorable / défavorable, ▲▼), taille des cases selon une mesure
- Petits multiples, styles communs au catalogue (Néon, Journal, Nordique…), palettes, thème JSON
Utilisables sans clé pour les essayer, avec un filigrane.
Tutoriels
Commencez par la prise en main, puis piochez dans les cas pratiques. La page « Champs et réglages » décrit chaque option du volet Format.
- Prise en mainDébutant7 min de lectureCarte de chaleur dans Power BI : grille, calendrier et heuresPrise en main de Heatmap Plume : préparer les données, insérer le visuel, lire les couleurs, écrire les valeurs dans les cases, filtrer en cliquant et passer au calendrier.
- Cas pratiquesIntermédiaire5 min de lectureHeatmap Plume : calendrier, heures d'affluence et 8 autres recettesCas pratiques de Heatmap Plume : calendrier sur plusieurs années, jour × heure, classes, tri, et en premium échelle divergente, totaux, comparaison à l'an passé, jours fériés et animation.
- Champs et réglagesIntermédiaire20 min de lectureHeatmap Plume : tous les champs et réglages de la carte de chaleurRéférence de Heatmap Plume : les dix champs (Lignes, Colonnes, Date, Valeur, Taille, Référence, Annotation…) et tous les réglages du volet Format, avec leurs valeurs.
- Bases communesBien démarrer avec les visuels PlumeInstallation, licence, styles et réglages communs à tous les visuels.
Champs à glisser dans le visuel
| Champ | Contenu | |
|---|---|---|
| Lignes, Colonnes | Une ligne et une colonne par valeur (rayon × mois, produit × région) | Facultatif |
| Date (calendrier, jour × heure) | Seule : calendrier (dates), jour × heure (dates-heures), année × mois (mois) ; avec Lignes : une colonne par période | Facultatif |
| Valeur (couleur) | La mesure qui colore les cases | Obligatoire |
| Axe de lecture | Une année ou une date : les couleurs s'animent ★ | FacultatifPremium |
| Référence, Annotation, Taille | Écart à une référence, texte par case, taille des cases selon une mesure | FacultatifPremium |
| Petits multiples | Une carte par valeur, même échelle | FacultatifPremium |
| Infobulles | Mesures supplémentaires | Facultatif |
| Format dynamique | Mesures renommées carte.réglage (ex. title.text) : le volet Format piloté en DAX | Facultatif |
Il vous manque une fonction ? Nous adaptons nos visuels ou en créons sur mesure. Demander un visuel sur mesure
Un bug dans Heatmap Plume, ou une idée pour l'améliorer ? Signaler un bug · Proposer une idée
Référence technique pour assistants IA
Section destinée aux assistants IA (ChatGPT, Claude, Copilot…) : tous les champs, toutes les options du volet Format avec leurs noms internes, le format des données et des exemples DAX. Générée depuis le code du visuel, version 1.1.0.0. Vous pouvez la copier dans votre assistant pour qu'il vous guide.
Version Markdown brute (/ai/visuals/heatmap.md)# Heatmap Plume: technical reference for AI assistants
> Power BI custom visual by Plume Studio (Plume Visuals). Visual version **1.1.0.0**. This page is generated from the visual's source code at each site build: field names, option names and defaults are exact for this version.
Use it to help someone build a report with Heatmap Plume: which fields to drag, how to shape the data, which Format pane option to change, or how to write the visual's settings in a PBIP `visual.json` file.
- Product page: https://plumevisuals.com/en/visuals/heatmap (French: https://plumevisuals.com/fr/visuels/heatmap)
- Summary: A grid, a calendar or peak hours: the color of each cell shows where values concentrate.
- Power BI visual GUID (`visualType`): `plumeHeatmap1EF5C05AB0CA4FB0A57FFFF734DE95DF`
- Power BI visuals API: 5.11.1
- Support: https://plumevisuals.com/support · contact@plumevisuals.com
- Index of everything on the site for AI assistants: https://plumevisuals.com/llms.txt
## What the visual does
Heatmap Plume (identifier `heatmap`) is a Power BI custom visual (version 1.1.0.0, installed from its `.pbiviz` file; not yet on AppSource) that draws **heatmaps**: cells colored by a value. Power BI Desktop has no native heatmap (the usual workaround is a matrix with background-color conditional formatting).
**New in version 1.1.0.0 (30/10/2026):** Format pane reorganized (`heatmap.*` → `layout.*`, `compare` → `comparison`); free **class colors** (equal classes; quantiles and thresholds ★) and cell outline width.
- **Three heatmaps in one** (`layout.mode`, « Type », `auto` by default):
- **Grid** (`grid`): `rows` ("Rows") × `columns` ("Columns"), one cell per combination;
- **Calendar** (`calendar`): a single `date` field with days; one strip per year with weeks as columns (GitHub style) or one block per month; separated months; whole years or the data period;
- **Day of week × hour** (`weekHour`): a single `date` field with date-times; the visual computes the weekday (first day of the week from the language or `calendar.weekStart`) and the hour itself (no DAX column needed).
- Automatic rules: Rows or Columns → grid; a date alone → calendar (days), day × hour (date-times), year × month grid (dates on the 1st of each month, or a date hierarchy without the day); Rows + Date → one column per day, month or year (with a Play axis as well, monthly dates become the 12 months of the year).
- **Date hierarchy accepted**: Year / Quarter / Month / Day levels (French, English and other languages) are rebuilt into dates; no need to switch to the date column. Dates sent as ISO text are read as local dates.
- **Color scale** (`scale`): single hue from light to dark (default, base color `scale.color` or the style palette's key color), the style's gradient palette, or diverging ★ with a midpoint (`zero`, `mean`, `median`, `center`, fixed `value`); continuous or equal classes; square root ★; min / max; robust range ★ (2nd–98th percentile). A blank value is **never** shown as zero: hatched cells (grayed in the calendar), "Blank" in the legend and tooltip.
- **Values in the cells** with automatic white / dark text; value or day number, or % of row, % of column, % of total ★; **all or nothing** (if one label does not fit, none is written, unless `labels.fit` is off).
- Sorting rows by model order, name, total or the value in a named column; columns by model order, name or total; first N rows; margin totals as values or bars ★.
- Selection of a cell, a row name, a column name (in the calendar: a month, a weekday, a year) cross-filters the report; cross-highlighting from other visuals dims the other cells; Ctrl + click adds.
- Large grids scroll; only the visible cells are drawn (at most 40,000 at a time); 100,000 rows render in about 1.5 s.
- **Play axis ★** (`play`): the cells change color from one frame to the next with a transition; same scale for every frame by default.
## Free vs premium (★)
- Every feature works without a key and nothing is ever blocked. Free features never show a watermark.
- Shared Style card (the same in every Plume visual): the styles `none`, `minimal` and `blackWhite`, the two Plume gradient palettes (`crest`, `crestDiverging`), "Follow report theme" and all custom colors (including Gradient: start / middle / end) are **free**; every other `style.preset`, the other gradient palettes (`style.palette`) and `style.themeJson` ("Theme JSON ★") are **premium**.
- Free in Heatmap Plume: grid, calendar, day × hour, year × month; single hue and palette scales; continuous and equal classes; linear scale; min / max; empty cell styles; labels with the value or the day number; cell shapes, spacing, square cells, min / max size; sorting (model, name, total, column value), first N rows; legend and class emphasis; weekdays, months, years, weekends; hour range and format.
- Rebalanced on 22/10/2026 (moved from free to premium): play axis, diverging gradient, square root scale, ignore extreme values, margin totals as values, labels in %.
- Premium features of Heatmap Plume (watermark only where they are actually applied):
- the `play` role ("Play axis ★") with data;
- `scale.kind` = `diverging` (outside a comparison); `scale.method` = `quantiles` or `thresholds` (with at least one threshold); `scale.transform` = `sqrt` or `log`; `scale.robust` (unless both min and max are set); `scale.scope` = `row` or `column` (grids);
- `layout.shape` = `radial` (grids and day × hour);
- `cells.sizeBy` = `value`, or `field` with the `size` role filled;
- `sort.rowsBy` / `sort.colsBy` = `similarity` (hierarchical clustering, average linkage on standardized profiles, 400 items at most, dendrogram `sort.dendrogram`);
- `margins.rows` / `margins.cols` = `values`, `bars` or `barsValues` (grids);
- `labels.content` = `pctRow`, `pctCol` or `pctTotal`;
- `calendar.holidays` (`fr`, `be`, `ch`, `ca`, `de`, `gb`, `us`; calendar only);
- the `note` role ("Annotation ★") with at least one text; the `reference` role ("Reference ★"); the `multiples` role ("Small multiples ★").
- Without a valid key, a premium feature in use shows, in edit mode, a "Premium preview" note in the footer; in reading view, **"Plume Visuals · Premium preview"** (French « Plume Visuals · Aperçu premium ») is repeated lightly across the whole visual, without catching the mouse. It disappears once a key is pasted in **Format › Plume Studio License › License key** (`license.key`), the first card of the Format pane. Premium options and list values have " ★" appended to their label.
- Accepted keys: only keys starting with `PLUM1.` shown in the buyer's account on plumevisuals.com, checked offline (Ed25519 signature), covering `heatmap` or the whole catalog. Licenses last one year (one-time payment, no automatic renewal). Prices: 39 € personal, 99 € SME, 299 € enterprise per year, or the catalog pack.
## Expected data shape
| Rows (`rows`) | Columns (`columns`) | Value (`values`) |
|---|---|---|
| Drinks | Jan | 228,000 |
| Drinks | Feb | 205,000 |
| Dairy | Jan | 44,000 |
- **Rows** (`rows`, « Lignes », one column) and **Columns** (`columns`, « Colonnes », one column): model order (Power BI "Sort by column" respected); numbers and dates ascending.
- **Date (calendar, day × hour)** (`date`, « Date (calendrier, jour × heure) », one column or a date hierarchy).
- **Value (color)** (`values`, « Valeur (couleur) », one measure). Without it but with a Date, each cell counts its rows. Several rows in one cell are combined by `layout.aggregate` (`sum`, `average`, `min`, `max`, `count`).
- **Size ★** (`size`, one measure), **Reference ★** (`reference`, one measure: last year, target), **Annotation ★** (`note`, a text measure or column), **Play axis** (`play`), **Small multiples ★** (`multiples`), **Tooltips** (`tooltips`), **Dynamic format** (`format`).
- Volume: windows of 30,000 rows, more fetched with `fetchMoreData` up to 100,000 rows.
## DAX recipes
```dax
Total revenue = SUM ( Sales[Revenue] )
// Reference ★: last year (date table marked as date table)
Revenue LY = CALCULATE ( [Total revenue], SAMEPERIODLASTYEAR ( Dates[Date] ) )
// Annotation ★: the event of the day
Event of the day = SELECTEDVALUE ( Attendance[Event] ) // a measure cannot share a column name of its own table
// Dynamic title (renamed title.text in the Dynamic format well)
Title = "Revenue 2025 · total " & FORMAT ( CALCULATE ( [Total revenue], ALLSELECTED () ), "#,0" )
```
## Interactions with the report
- Click a cell: cross-filter on every row of the cell (all play-axis frames); Ctrl to add; click a row or column name (calendar: a month, weekday or year name) to select it all (`interaction.headers`). Click an empty area to clear. Context menu everywhere, including on names and on the landing page.
- Hover: outline of the cell, row and column names in the accent color (`interaction.crosshair`), Power BI tooltip (row, column or date and holiday, value, reference and difference, size, % if shown, annotation, Tooltips measures, count of rows); report-page tooltips are supported.
- Legend with classes: click a class to emphasize its cells (`legend.interactive`, no filter).
- Keyboard: Tab to the heatmap, arrows move in two dimensions (calendar: days and weeks), Home / End, Enter selects, Esc clears; announcements in French and English. High contrast: five density patterns instead of colors.
- The visual never saves anything itself (no `persistProperties`).
## Format pane: option IDs
- Card order: `license`, `style`, `scale`, `layout`, `cells`, `labels`, `legend`, `rowAxis`, `colAxis`, `sort`, `margins`, `calendar`, `comparison`, `annotations`, `play`, `smallMultiples`, `interaction`, then `title`, `source`, `container`, `texts`. Format pane in version 1.1.0.0 (30/10/2026), top to bottom: `license`, `style`, `layout`, `scale`, `cells`, `labels`, `rowAxis`, `colAxis`, `legend`, `sort`, `margins`, `calendar`, `comparison`, `annotations`, `smallMultiples`, `play`, `interaction`, `tooltip`, `title`, `source`, `container`, `texts`. Settings moved or renamed in this version keep working in older reports (the old names are still read).
- `scale`: `kind` (`auto` | `mono` | `palette` | `diverging` ★), `color`, `mid` (`zero` | `mean` | `median` | `center` | `value`), `midValue`, `empty` (`auto` | `hatch` | `light` | `hide`), `method` (`continuous` | `classes` | `quantiles` ★ | `thresholds` ★), `classes` (2–12, 5), `thresholds` (text `10; 50; 100`), `transform` (`linear` | `sqrt` ★ | `log` ★), `scope` (`all` | `row` ★ | `column` ★), `min`, `max` (text), `robust` ★.
- `layout`: `mode` (`auto` | `grid` | `calendar` | `weekHour`), `shape` (`grid` | `radial` ★), `inner` (0–80 %, 28), `aggregate` (`sum` | `average` | `min` | `max` | `count`).
- `cells`: `shape` (`square` | `rounded` | `circle`), `radius` (0–20, 3), `gap` (0–20, 2), `square`, `minSize` (2–80, 14), `maxSize` (0–400, 0 = fill), `sizeBy` (`none` | `value` ★ | `field` ★), `border`, `borderColor`.
- `labels`: `show`, `content` (`value` | `pctRow` ★ | `pctCol` ★ | `pctTotal` ★ | `day`), `fontSize` (10), `color`, `bold`, `fit`, `units`, `decimals`, `prefix`, `suffix`.
- `legend`: `show`, `position` (`top` | `bottom` | `right` | `left`), `align`, `showTitle`, `titleText`, `fontSize` (9), `color`, `length` (60–600, 160), `interactive`.
- `rowAxis`: `show`, `fontSize`, `color`, `bold`, `maxSize`, `showTitle`, `titleText`. `colAxis`: same plus `position` (`top` | `bottom`) and `labelMode` (`auto` | `wrap` | `rotate45` | `rotate90` | `truncate`).
- `sort`: `rowsBy` (`model` | `name` | `total` | `column` | `similarity` ★), `rowsOrder` (`desc` | `asc`), `rowsColumn` (column name; empty = last), `rowsTop` (0 = all), `colsBy` (`model` | `name` | `total` | `similarity` ★), `colsOrder`, `dendrogram`, `treeSize` (16–160, 40).
- `margins` ★: `rows`, `cols` (`none` | `values` ★ | `bars` ★ | `barsValues` ★), `agg` (`sum` | `average` | `max` | `min`), `size` (5–40 %, 12), `color`, `fontSize`.
- `calendar`: `weekStart` (`auto` | `monday` | `sunday` | `saturday`), `dayLabels` (`alternate` | `all` | `none`), `weekends`, `layout` (`weeks` | `months`), `range` (`years` | `data`), `monthGaps`, `monthLabels`, `yearLabels`, `maxYears` (1–50, 10), `holidays` (`none` | `fr` ★ | `be` ★ | `ch` ★ | `ca` ★ | `de` ★ | `gb` ★ | `us` ★), `markColor`, `hourStart` (0), `hourEnd` (23), `hourFormat` (`auto` | `h24` | `h12`).
- `comparison`: `mode` (`difference` | `percent`), `lowerIsBetter`, `arrows`. `annotations`: `marker` (`corner` | `dot` | `outline`), `color`.
- `play` ★ (shared player): `start` (`last` | `first`), `speed` (ms, 1000), `loop`, `autoPlay`, `transition`, `controls`, `position`, `ticks`, `tickLabels`, `stepButtons`, `speedButton`, `showLabel`, `labelSize`, `labelPosition`, `sameScale`.
- `smallMultiples`: `columns`, `minWidth`, `gap`, `titleSize`, `border`. `interaction`: `hover`, `dim` (5–80, 25), `crosshair`, `headers`.
## Editing a PBIP report (visual.json)
`visualType` is the visual GUID `plumeHeatmap1EF5C05AB0CA4FB0A57FFFF734DE95DF`, `queryState` keys are the data role names (`rows`, `columns`, `date`, `values`, `size`, `reference`, `note`, `play`, `multiples`, `tooltips`, `format`), `objects` keys are the option IDs above. Booleans `true` / `false`, numbers suffixed with `D`, strings and enumeration values in single quotes.
```json
"objects": {
"scale": [ { "properties": { "kind": { "expr": { "Literal": { "Value": "'diverging'" } } }, "mid": { "expr": { "Literal": { "Value": "'zero'" } } } } } ],
"margins": [ { "properties": { "rows": { "expr": { "Literal": { "Value": "'values'" } } } } } ]
}
```
## Common pitfalls
- A calendar appears instead of a grid: only a date is in the fields (add Rows / Columns or set `layout.mode` = `grid`).
- Months out of alphabetical order: sort the text month column by the month number in the model, or use a date.
- Hatched cells: no data for that combination (not a zero); `scale.empty` changes the look.
- No labels: one value does not fit (all or nothing); reduce `labels.fontSize`, use `labels.units`, or turn off `labels.fit`.
- The grid scrolls: `cells.minSize` keeps cells readable; lower it or use `sort.rowsTop`.
- Similarity sort falls back to total: more than 400 rows or columns.
- Watermark visible: one of the ★ settings listed above actually applied, a ★ style, palette or theme JSON, without a valid key.
## Features that do NOT exist (do not suggest them)
Row hierarchies with expandable subtotals (use Matrix Plume), regional holidays (Alsace-Moselle, Swiss cantons, US states), fiscal-year calendars, dragging to select a date range, lines or reference bands, exporting the heatmap as an image, any network call (data and license key stay in the report).
## Data fields (wells)
Internal name = data role name (PBIP `queryState` key). Labels as shown in Power BI (English / French). ★ = premium.
| Internal name | Label (EN) | Label (FR) | Kind | Max fields | Description |
|---|---|---|---|---|---|
| `rows` | Rows | Lignes | column | 1 | One row of cells per value (product, region, day of week…) |
| `columns` | Columns | Colonnes | column | 1 | One column of cells per value (month, hour, year…) |
| `date` | Date (calendar, day × hour) | Date (calendrier, jour × heure) | column | 4 | Alone: a calendar (dates), a day of week × hour grid (date-times) or a year × month grid. With Rows: the dates become the columns |
| `values` | Value (color) | Valeur (couleur) | measure | 1 | The measure that colors the cells; without a measure, each cell counts its rows |
| `size` | Size ★ | Taille ★ | measure | 1 | A second measure shown by the size of the cells (number of orders behind an average, for example) |
| `reference` | Reference ★ | Référence ★ | measure | 1 | Last year, target or average: the cells are colored by their gap to it |
| `note` | Annotation ★ | Annotation ★ | measure | 1 | A text per cell (event, comment): a marker in the cell and the text in the tooltip |
| `play` | Play axis ★ | Axe de lecture ★ | column | 1 | A date, a year or an ordered category: the cells change color from one value to the next (play button) ★ |
| `multiples` | Small multiples ★ | Petits multiples ★ | column | 1 | One small heatmap per value, with the same scale and the same order |
| `tooltips` | Tooltips | Infobulles | measure | several | |
| `format` | Dynamic format | Format dynamique | measure | several | Measures named card.setting (e.g. title.fontSize): drive any Format option with DAX |
Data view: categorical, categories = `rows` + `columns` + `date` + `play` + `multiples` (one row per combination), 30,000 rows per data window (more fetched automatically); measures = `values`, `size`, `reference`, `note`, `tooltips`, `format`.
Capabilities: supportsHighlight, supportsKeyboardFocus, supportsMultiVisualSelection, supportsLandingPage, supportsEmptyDataView.
Network access: none (no privileges requested, no external request).
## Format pane options (189)
Columns: option ID (`object.property`), labels EN / FR as shown in Power BI, control type, PBIP literal type, default value, allowed values, notes.
### Plume Studio License / Licence Plume Studio (`license`, Format pane)
| Option ID | Label (EN) | Label (FR) | Control | Type | Default | Allowed values | Notes |
|---|---|---|---|---|---|---|---|
| `license.buy` | Get a license | Obtenir une licence | info | text | `plumevisuals.com` | | |
| `license.key` | License key | Clé de licence | text | text | (empty) | | Paste the key received after purchase on plumevisuals.com (starts with PLUM1.). Checked offline. |
| `license.showOwner` | Show license holder (edit mode) | Afficher le titulaire (mode édition) | toggle | bool | `true` | true / false | |
### Style (`style`, Format pane)
**Style**
| Option ID | Label (EN) | Label (FR) | Control | Type | Default | Allowed values | Notes |
|---|---|---|---|---|---|---|---|
| `style.preset` | Style | Style | dropdown | enumeration | `none` | `none` None; `minimal` Minimal; `blackWhite` Black & White; `press` Newspaper ★; `vintage` Vintage (antique plate) ★; `earth` Earth ★; `nordic` Nordic ★; `executive` Executive ★; `accessible` Accessible (high legibility) ★; `pastel` Pastel ★; `bauhaus` Bauhaus (pop) ★; `climate` Climate ★; `blueprint` Blueprint ★; `unknownPleasures` Unknown Pleasures ★; `dark` Graphite (dark) ★; `neon` Neon ★; `terminal` Terminal (Matrix) ★; `infographic` Infographic ★; `cockpit` Cockpit (HUD) ★; `hologram` Hologram ★ | Complete look shared by all Plume visuals: colors, three palettes, fonts, frame, table header, marks and effects. Customize colors below. |
| `style.themeJson` | Theme JSON ★ | Thème JSON ★ | textarea | text | (empty) | | Paste a JSON theme: see the 'JSON themes' tutorial on plumevisuals.com |
| `style.followTheme` | Follow report theme | Suivre le thème du rapport | toggle | bool | `false` | true / false | Text, background, accent and data colors come from the Power BI report theme. |
| `style.reverse` | Reverse gradients | Inverser les dégradés | toggle | bool | `false` | true / false | |
**Custom colors / Couleurs personnalisées**
| Option ID | Label (EN) | Label (FR) | Control | Type | Default | Allowed values | Notes |
|---|---|---|---|---|---|---|---|
| `style.customColors` | Customize colors | Personnaliser les couleurs | toggle | bool | `false` | true / false | Start from the style and pick your own colors. A color left empty keeps the style's color. |
| `style.colorBackground` | Background | Fond | color | fill | (empty) | hex color | Visible when `style.customColors` = `true` |
| `style.colorText` | Text | Texte | color | fill | (empty) | hex color | Visible when `style.customColors` = `true` |
| `style.colorMuted` | Secondary text | Texte secondaire | color | fill | (empty) | hex color | Visible when `style.customColors` = `true` |
| `style.colorGrid` | Lines and grid | Traits et grille | color | fill | (empty) | hex color | Visible when `style.customColors` = `true` |
| `style.colorAccent` | Accent | Accent | color | fill | (empty) | hex color | Visible when `style.customColors` = `true` |
| `style.colorPositive` | Favorable | Favorable | color | fill | (empty) | hex color | Visible when `style.customColors` = `true` |
| `style.colorNegative` | Unfavorable | Défavorable | color | fill | (empty) | hex color | Visible when `style.customColors` = `true` |
| `style.series1` | Series 1 | Série 1 | color | fill | (empty) | hex color | Visible when `style.customColors` = `true` |
| `style.series2` | Series 2 | Série 2 | color | fill | (empty) | hex color | Visible when `style.customColors` = `true` |
| `style.series3` | Series 3 | Série 3 | color | fill | (empty) | hex color | Visible when `style.customColors` = `true` |
| `style.series4` | Series 4 | Série 4 | color | fill | (empty) | hex color | Visible when `style.customColors` = `true` |
| `style.series5` | Series 5 | Série 5 | color | fill | (empty) | hex color | Visible when `style.customColors` = `true` |
| `style.series6` | Series 6 | Série 6 | color | fill | (empty) | hex color | Visible when `style.customColors` = `true` |
| `style.series7` | Series 7 | Série 7 | color | fill | (empty) | hex color | Visible when `style.customColors` = `true` |
| `style.series8` | Series 8 | Série 8 | color | fill | (empty) | hex color | Visible when `style.customColors` = `true` |
| `style.palette` | Gradient palette | Palette du dégradé | dropdown | enumeration | `auto` | `auto` Style or theme palette; `crest` Plume (sequential); `crestDiverging` Plume (diverging); `viridis` Viridis ★; `magma` Magma ★; `inferno` Inferno ★; `cividis` Cividis (colorblind-safe) ★; `warmingStripes` Warming stripes ★; `rdYlBu` Red–Yellow–Blue ★; `brBG` Brown–Teal (drought) ★; `spectral` Spectral ★; `blues` Blues ★; `reds` Reds ★; `grays` Grays ★; `press` Press (ink and paper) ★; `nordic` Nordic ★; `earth` Earth (ochre to umber) ★; `pastel` Pastel ★; `okabeIto` Okabe-Ito (colorblind-safe) ★ | Visible when `style.customColors` = `true`. Gradient from the catalog (Viridis, Magma…). The start, middle and end colors below replace it. |
| `style.scaleLow` | Gradient: start | Dégradé : début | color | fill | (empty) | hex color | Visible when `style.customColors` = `true` |
| `style.scaleMid` | Gradient: middle (diverging) | Dégradé : milieu (écarts) | color | fill | (empty) | hex color | Visible when `style.customColors` = `true` |
| `style.scaleHigh` | Gradient: end | Dégradé : fin | color | fill | (empty) | hex color | Visible when `style.customColors` = `true` |
**Text / Texte**
| Option ID | Label (EN) | Label (FR) | Control | Type | Default | Allowed values | Notes |
|---|---|---|---|---|---|---|---|
| `style.fontFamily` | Font | Police | font | formatting | `Segoe UI, wf_segoe-ui_normal, helvetica, arial, sans-serif` | | Used by every text of the visual (title, axes, labels, cells). |
**Animations**
| Option ID | Label (EN) | Label (FR) | Control | Type | Default | Allowed values | Notes |
|---|---|---|---|---|---|---|---|
| `style.animate` | Animations | Animations | toggle | bool | `true` | true / false | Smooth transitions when data changes. Automatically disabled when the system asks to reduce motion. |
### Layout / Disposition (`layout`, Format pane)
| Option ID | Label (EN) | Label (FR) | Control | Type | Default | Allowed values | Notes |
|---|---|---|---|---|---|---|---|
| `layout.mode` | Type | Type | dropdown | enumeration | `auto` | `auto` Automatic (from the fields); `grid` Grid: rows × columns; `calendar` Calendar (a Date field); `weekHour` Day of week × hour (date-time) | Automatic: Rows / Columns give a grid; a Date alone gives a calendar (days), a day × hour grid (date-times) or a year × month grid (months). |
| `layout.shape` | Shape | Forme | dropdown | enumeration | `grid` | `grid` Grid; `radial` Radial (columns around a circle) ★ | Radial: the columns (hours, months) go around the circle and the rows become rings. |
| `layout.inner` | Center hole (% of the radius) | Trou central (% du rayon) | number | integer | `28` | 0 to 80 | Visible when `layout.shape` = `radial` |
| `layout.aggregate` | Several values in a cell | Plusieurs valeurs dans une case | dropdown | enumeration | `sum` | `sum` Sum; `average` Average; `min` Minimum; `max` Maximum; `count` Count of rows | Day × hour and calendar: how the rows of the same cell are combined (sum of sales, average temperature…). |
### Color scale / Échelle de couleurs (`scale`, Format pane)
**Colors / Couleurs**
| Option ID | Label (EN) | Label (FR) | Control | Type | Default | Allowed values | Notes |
|---|---|---|---|---|---|---|---|
| `scale.kind` | Gradient | Dégradé | dropdown | enumeration | `auto` | `auto` Automatic (single hue, or the style palette); `mono` Single hue: light to dark; `palette` Gradient palette (Style card); `diverging` Diverging: two hues and a midpoint ★ | The palettes (Viridis, Magma, Blues…) and the start / middle / end colors are chosen in Style › Custom colors. |
| `scale.color` | Hue (empty = style color) | Teinte (vide = couleur du style) | color | fill | (empty) | hex color | Visible when `scale.kind` = `auto` or `mono` |
| `scale.mid` | Scale midpoint | Milieu de l'échelle | dropdown | enumeration | `zero` | `zero` Zero; `mean` Average; `median` Median; `center` Center of the range; `value` Fixed value | Visible when `scale.kind` = `diverging` |
| `scale.midValue` | Midpoint value | Valeur du milieu | number | numeric | `0` | | Visible when `scale.kind` = `diverging` |
| `scale.empty` | Empty cells | Cases vides | dropdown | enumeration | `auto` | `auto` Automatic (hatched; grayed in the calendar); `hatch` Hatched; `light` Grayed; `hide` Hidden | A blank value is never shown as zero: a zero takes the color of the scale. |
**Classes and range / Classes et domaine**
| Option ID | Label (EN) | Label (FR) | Control | Type | Default | Allowed values | Notes |
|---|---|---|---|---|---|---|---|
| `scale.method` | Color distribution | Répartition des couleurs | dropdown | enumeration | `continuous` | `continuous` Continuous; `classes` Equal classes; `quantiles` Quantiles (same number of cells per class) ★; `thresholds` Custom thresholds ★ | |
| `scale.classes` | Number of classes | Nombre de classes | number | integer | `5` | 2 to 12 | Visible when `scale.method` = `classes` or `quantiles` |
| `scale.thresholds` | Thresholds (separated by ;) | Seuils (séparés par ;) | text | text | (empty) | | Visible when `scale.method` = `thresholds` |
| `scale.classColors` | Class colors (empty = gradient) | Couleurs des classes (vide = dégradé) | text | text | (empty) | | Visible when `scale.method` = `classes` or `quantiles` or `thresholds`. Like the Rules of the native conditional formatting: one color per class, from the lowest to the highest, separated by ; (#RRGGBB or a color name). Missing colors come from the gradient. |
| `scale.transform` | Scale | Échelle | dropdown | enumeration | `linear` | `linear` Linear; `sqrt` Square root ★; `log` Logarithmic ★ | Square root and logarithmic scales spread out small values when a few cells are very large. |
| `scale.scope` | Scale computed over | Échelle calculée sur | dropdown | enumeration | `all` | `all` All cells; `row` Each row ★; `column` Each column ★ | Per row: each row has its own lightest and darkest cell (rows with different units or sizes). |
| `scale.min` | Minimum | Minimum | text | text | (empty) | | |
| `scale.max` | Maximum | Maximum | text | text | (empty) | | |
| `scale.robust` | Ignore extreme values (2% on each side) ★ | Ignorer les valeurs extrêmes (2 % de chaque côté) ★ | toggle | bool | `false` | true / false | The colors are spread between the 2nd and 98th percentiles: one huge cell no longer flattens all the others. |
### Cells / Cases (`cells`, Format pane)
| Option ID | Label (EN) | Label (FR) | Control | Type | Default | Allowed values | Notes |
|---|---|---|---|---|---|---|---|
| `cells.shape` | Cell shape | Forme des cases | dropdown | enumeration | `rounded` | `square` Square; `rounded` Rounded corners; `circle` Circles | |
| `cells.radius` | Corner radius (px) | Arrondi (px) | number | integer | `3` | 0 to 20 | Visible when `cells.shape` = `rounded` |
| `cells.gap` | Spacing (px) | Espacement (px) | number | numeric | `2` | 0 to 20 | |
| `cells.square` | Square cells in the grid | Cases carrées dans la grille | toggle | bool | `false` | true / false | The calendar always uses square cells. |
| `cells.minSize` | Minimum size before scrolling (px) | Taille minimale avant défilement (px) | number | integer | `14` | 2 to 80 | Large grids scroll (only the visible cells are drawn) instead of shrinking below this size. |
| `cells.maxSize` | Maximum size (px, 0 = fill) | Taille maximale (px, 0 = remplir) | number | integer | `0` | 0 to 400 | |
| `cells.sizeBy` | Cell size | Taille des cases | dropdown | enumeration | `none` | `none` All full; `value` By value ★; `field` By the "Size" field ★ | The color shows the value, the size shows how much data is behind it (or the value itself). |
| `cells.border` | Outline | Contour | toggle | bool | `false` | true / false | |
| `cells.borderColor` | Outline color (empty = grid) | Couleur du contour (vide = grille) | color | fill | (empty) | hex color | Visible when `cells.border` = `true` |
| `cells.borderWidth` | Outline width (px) | Épaisseur du contour (px) | number | numeric | `1` | 0.5 to 6 | Visible when `cells.border` = `true` |
### Data labels / Étiquettes de données (`labels`, Format pane)
The card header toggle is `labels.show`.
**Labels / Étiquettes**
| Option ID | Label (EN) | Label (FR) | Control | Type | Default | Allowed values | Notes |
|---|---|---|---|---|---|---|---|
| `labels.show` | Show | Afficher | toggle | bool | `true` | true / false | Values are written in the cells that are large enough. |
| `labels.content` | Content | Contenu | dropdown | enumeration | `value` | `value` Value; `pctRow` % of row ★; `pctCol` % of column ★; `pctTotal` % of total ★; `day` Day number (calendar) | |
| `labels.fontSize` | Text size | Taille du texte | number | formatting | `10` | 6 to 32 | |
| `labels.color` | Color (empty = automatic) | Couleur (vide = automatique) | color | fill | (empty) | hex color | Automatic: white or dark text depending on each cell. |
| `labels.bold` | Bold | Gras | toggle | bool | `false` | true / false | |
| `labels.fit` | Hide the labels when they do not all fit | Masquer les étiquettes quand elles ne tiennent pas toutes | toggle | bool | `true` | true / false | All or nothing: never a grid with labels in some cells only. Off: each label that fits is written. |
**Numbers / Nombres**
| Option ID | Label (EN) | Label (FR) | Control | Type | Default | Allowed values | Notes |
|---|---|---|---|---|---|---|---|
| `labels.units` | Display units | Unités d'affichage | dropdown | enumeration | `auto` | `auto` Auto; `none` None; `k` Thousands; `m` Millions; `b` Billions | |
| `labels.decimals` | Decimals (-1 = auto) | Décimales (-1 = auto) | number | integer | `-1` | -1 to 6 | |
| `labels.prefix` | Prefix | Préfixe | text | text | (empty) | | |
| `labels.suffix` | Suffix (e.g. €) | Suffixe (ex. €) | text | text | (empty) | | |
### Row labels / Étiquettes des lignes (`rowAxis`, Format pane)
The card header toggle is `rowAxis.show`.
**Labels / Étiquettes**
| Option ID | Label (EN) | Label (FR) | Control | Type | Default | Allowed values | Notes |
|---|---|---|---|---|---|---|---|
| `rowAxis.show` | Show | Afficher | toggle | bool | `true` | true / false | |
| `rowAxis.fontSize` | Text size | Taille du texte | number | formatting | `9` | 6 to 24 | |
| `rowAxis.color` | Color (empty = text) | Couleur (vide = texte) | color | fill | (empty) | hex color | |
| `rowAxis.bold` | Bold | Gras | toggle | bool | `false` | true / false | |
| `rowAxis.maxSize` | Maximum room (% of the visual) | Place maximale (% du visuel) | number | integer | `30` | 5 to 60 | |
**Title / Titre**
| Option ID | Label (EN) | Label (FR) | Control | Type | Default | Allowed values | Notes |
|---|---|---|---|---|---|---|---|
| `rowAxis.showTitle` | Row title | Titre des lignes | toggle | bool | `false` | true / false | |
| `rowAxis.titleText` | Title text | Texte du titre | text | text | (empty) | | Visible when `rowAxis.showTitle` = `true` |
### Column labels / Étiquettes des colonnes (`colAxis`, Format pane)
The card header toggle is `colAxis.show`.
**Labels / Étiquettes**
| Option ID | Label (EN) | Label (FR) | Control | Type | Default | Allowed values | Notes |
|---|---|---|---|---|---|---|---|
| `colAxis.show` | Show | Afficher | toggle | bool | `true` | true / false | |
| `colAxis.position` | Position | Position | dropdown | enumeration | `top` | `top` Top; `bottom` Bottom | |
| `colAxis.fontSize` | Text size | Taille du texte | number | formatting | `9` | 6 to 24 | |
| `colAxis.color` | Color (empty = secondary) | Couleur (vide = secondaire) | color | fill | (empty) | hex color | |
| `colAxis.bold` | Bold | Gras | toggle | bool | `false` | true / false | |
| `colAxis.labelMode` | Long labels | Étiquettes longues | dropdown | enumeration | `auto` | `auto` Automatic; `wrap` Two lines; `rotate45` Tilted (45°); `rotate90` Vertical; `truncate` Truncated (…) | |
| `colAxis.maxSize` | Maximum room (% of the visual) | Place maximale (% du visuel) | number | integer | `30` | 5 to 60 | |
**Title / Titre**
| Option ID | Label (EN) | Label (FR) | Control | Type | Default | Allowed values | Notes |
|---|---|---|---|---|---|---|---|
| `colAxis.showTitle` | Column title | Titre des colonnes | toggle | bool | `false` | true / false | |
| `colAxis.titleText` | Title text | Texte du titre | text | text | (empty) | | Visible when `colAxis.showTitle` = `true` |
### Legend / Légende (`legend`, Format pane)
The card header toggle is `legend.show`.
| Option ID | Label (EN) | Label (FR) | Control | Type | Default | Allowed values | Notes |
|---|---|---|---|---|---|---|---|
| `legend.show` | Show | Afficher | toggle | bool | `true` | true / false | |
| `legend.position` | Position | Position | dropdown | enumeration | `top` | `top` Top; `bottom` Bottom; `right` Right; `left` Left | |
| `legend.align` | Alignment | Alignement | dropdown | enumeration | `right` | `left` Start; `center` Center; `right` End | Visible when `legend.position` = `top` or `bottom` |
| `legend.showTitle` | Legend title | Titre de la légende | toggle | bool | `false` | true / false | |
| `legend.titleText` | Title text | Texte du titre | text | text | (empty) | | Visible when `legend.showTitle` = `true` |
| `legend.fontSize` | Text size | Taille du texte | number | formatting | `9` | 6 to 24 | |
| `legend.color` | Color (empty = secondary) | Couleur (vide = secondaire) | color | fill | (empty) | hex color | |
| `legend.length` | Gradient length (px) | Longueur du dégradé (px) | number | integer | `160` | 60 to 600 | |
| `legend.interactive` | Click a class = highlight its cells | Clic sur une classe = mettre ses cases en avant | toggle | bool | `true` | true / false | |
### Sort / Tri (`sort`, Format pane)
**Rows / Lignes**
| Option ID | Label (EN) | Label (FR) | Control | Type | Default | Allowed values | Notes |
|---|---|---|---|---|---|---|---|
| `sort.rowsBy` | Sort rows by | Trier les lignes par | dropdown | enumeration | `model` | `model` Model order (as in Power BI); `name` Name; `total` Row total; `column` Value in a column; `similarity` Similarity (clustering) ★ | Similarity: rows that look alike are placed side by side (hierarchical clustering, computed in the visual). |
| `sort.rowsOrder` | Order | Ordre | dropdown | enumeration | `desc` | `desc` Largest first (names A to Z); `asc` Smallest first (names Z to A) | Visible when `sort.rowsBy` = `name` or `total` or `column` |
| `sort.rowsColumn` | Column name | Nom de la colonne | text | text | (empty) | | Visible when `sort.rowsBy` = `column`. Empty: the last column. |
| `sort.rowsTop` | Show the first N rows (0 = all) | Afficher les N premières lignes (0 = toutes) | number | integer | `0` | 0 to 5000 | |
**Columns / Colonnes**
| Option ID | Label (EN) | Label (FR) | Control | Type | Default | Allowed values | Notes |
|---|---|---|---|---|---|---|---|
| `sort.colsBy` | Sort columns by | Trier les colonnes par | dropdown | enumeration | `model` | `model` Model order (as in Power BI); `name` Name; `total` Column total; `similarity` Similarity (clustering) ★ | |
| `sort.colsOrder` | Order | Ordre | dropdown | enumeration | `desc` | `desc` Largest first (names A to Z); `asc` Smallest first (names Z to A) | Visible when `sort.colsBy` = `name` or `total` |
**Dendrogram / Dendrogramme**
| Option ID | Label (EN) | Label (FR) | Control | Type | Default | Allowed values | Notes |
|---|---|---|---|---|---|---|---|
| `sort.dendrogram` | Draw the clustering tree | Dessiner l'arbre du regroupement | toggle | bool | `true` | true / false | With a similarity sort: the tree shows which rows (columns) are closest. |
| `sort.treeSize` | Tree size (px) | Taille de l'arbre (px) | number | integer | `40` | 16 to 160 | Visible when `sort.dendrogram` = `true` |
### Margin totals ★ / Totaux en marge ★ (`margins`, Format pane)
This card controls premium features (★): they work without a license key but show the watermark while in use.
| Option ID | Label (EN) | Label (FR) | Control | Type | Default | Allowed values | Notes |
|---|---|---|---|---|---|---|---|
| `margins.rows` | Row totals (right) | Total des lignes (à droite) | dropdown | enumeration | `none` | `none` None; `values` Values ★; `bars` Bars ★; `barsValues` Bars and values ★ | |
| `margins.cols` | Column totals | Total des colonnes | dropdown | enumeration | `none` | `none` None; `values` Values ★; `bars` Bars ★; `barsValues` Bars and values ★ | Drawn on the side opposite the column labels. |
| `margins.agg` | Calculation | Calcul | dropdown | enumeration | `sum` | `sum` Sum; `average` Average; `max` Maximum; `min` Minimum | |
| `margins.size` | Bar room (% of the visual) | Place des barres (% du visuel) | number | integer | `12` | 5 to 40 | |
| `margins.color` | Bar color (empty = scale color) | Couleur des barres (vide = couleur de l'échelle) | color | fill | (empty) | hex color | |
| `margins.fontSize` | Text size | Taille du texte | number | formatting | `9` | 6 to 24 | |
### Calendar and hours / Calendrier et heures (`calendar`, Format pane)
**Days / Jours**
| Option ID | Label (EN) | Label (FR) | Control | Type | Default | Allowed values | Notes |
|---|---|---|---|---|---|---|---|
| `calendar.weekStart` | First day of the week | Premier jour de la semaine | dropdown | enumeration | `auto` | `auto` From the language (Sunday in US English); `monday` Monday; `sunday` Sunday; `saturday` Saturday | |
| `calendar.dayLabels` | Day names | Noms des jours | dropdown | enumeration | `alternate` | `alternate` Every other day; `all` All; `none` None | |
| `calendar.weekends` | Mark weekends | Souligner les week-ends | toggle | bool | `false` | true / false | |
**Calendar / Calendrier**
| Option ID | Label (EN) | Label (FR) | Control | Type | Default | Allowed values | Notes |
|---|---|---|---|---|---|---|---|
| `calendar.layout` | Layout | Disposition | dropdown | enumeration | `weeks` | `weeks` Weeks as columns (GitHub style); `months` One block per month | |
| `calendar.range` | Period shown | Période affichée | dropdown | enumeration | `years` | `years` Whole years; `data` From the first to the last day of the data | |
| `calendar.monthGaps` | Separate the months | Séparer les mois | toggle | bool | `true` | true / false | |
| `calendar.monthLabels` | Month names | Noms des mois | toggle | bool | `true` | true / false | |
| `calendar.yearLabels` | Years | Années | toggle | bool | `true` | true / false | |
| `calendar.maxYears` | Maximum number of years (most recent) | Nombre d'années au plus (les plus récentes) | number | integer | `10` | 1 to 50 | |
**Holidays and annotations / Jours fériés et annotations**
| Option ID | Label (EN) | Label (FR) | Control | Type | Default | Allowed values | Notes |
|---|---|---|---|---|---|---|---|
| `calendar.holidays` | Public holidays | Jours fériés | dropdown | enumeration | `none` | `none` None; `fr` France ★; `be` Belgium ★; `ch` Switzerland (federal) ★; `ca` Canada (federal) ★; `de` Germany (national) ★; `gb` United Kingdom (England) ★; `us` United States (federal) ★ | Computed in the visual (Easter included), outlined in the calendar and named in the tooltip. |
| `calendar.markColor` | Marker color (empty = accent) | Couleur des repères (vide = accent) | color | fill | (empty) | hex color | |
**Hours (day × hour) / Heures (jour × heure)**
| Option ID | Label (EN) | Label (FR) | Control | Type | Default | Allowed values | Notes |
|---|---|---|---|---|---|---|---|
| `calendar.hourStart` | First hour | Première heure | number | integer | `0` | 0 to 23 | |
| `calendar.hourEnd` | Last hour | Dernière heure | number | integer | `23` | 0 to 23 | |
| `calendar.hourFormat` | Hour format | Format des heures | dropdown | enumeration | `auto` | `auto` From the language; `h24` 24-hour (0 to 23); `h12` 12-hour (AM / PM) | |
### Comparison ★ / Comparaison ★ (`comparison`, Format pane)
This card controls premium features (★): they work without a license key but show the watermark while in use.
| Option ID | Label (EN) | Label (FR) | Control | Type | Default | Allowed values | Notes |
|---|---|---|---|---|---|---|---|
| `comparison.mode` | Color by | Couleur selon | dropdown | enumeration | `difference` | `difference` Difference (value − reference); `percent` Difference in % of the reference | With a measure in "Reference": each cell is colored by its gap to the reference (last year, target, average), on a diverging scale centered on zero. |
| `comparison.lowerIsBetter` | A decrease is favorable | Une baisse est favorable | toggle | bool | `false` | true / false | |
| `comparison.arrows` | ▲▼ arrows in the labels | Flèches ▲▼ dans les étiquettes | toggle | bool | `true` | true / false | |
### Annotations ★ (`annotations`, Format pane)
This card controls premium features (★): they work without a license key but show the watermark while in use.
| Option ID | Label (EN) | Label (FR) | Control | Type | Default | Allowed values | Notes |
|---|---|---|---|---|---|---|---|
| `annotations.marker` | Marker | Repère | dropdown | enumeration | `corner` | `corner` Cell corner; `dot` Dot; `outline` Outline | Cells with a text in the "Annotation" field get a marker; the text is in the tooltip. |
| `annotations.color` | Color (empty = accent) | Couleur (vide = accent) | color | fill | (empty) | hex color | |
### Small multiples ★ / Petits multiples ★ (`smallMultiples`, Format pane)
This card controls premium features (★): they work without a license key but show the watermark while in use.
| Option ID | Label (EN) | Label (FR) | Control | Type | Default | Allowed values | Notes |
|---|---|---|---|---|---|---|---|
| `smallMultiples.columns` | Columns (0 = automatic) | Colonnes (0 = automatique) | number | integer | `0` | 0 to 12 | |
| `smallMultiples.minWidth` | Minimum chart width (px) | Largeur minimale d'un graphique (px) | number | integer | `220` | 80 to 800 | |
| `smallMultiples.gap` | Spacing (px) | Espacement (px) | number | integer | `14` | 0 to 60 | |
| `smallMultiples.titleSize` | Title size | Taille des titres | number | formatting | `10` | 6 to 24 | |
| `smallMultiples.border` | Frame around each chart | Cadre autour de chaque graphique | toggle | bool | `false` | true / false | |
### Playback ★ / Lecture ★ (`play`, Format pane)
This card controls premium features (★): they work without a license key but show the watermark while in use.
**Playback / Lecture**
| Option ID | Label (EN) | Label (FR) | Control | Type | Default | Allowed values | Notes |
|---|---|---|---|---|---|---|---|
| `play.start` | Frame shown on opening | Image affichée à l'ouverture | dropdown | enumeration | `last` | `last` The last one (most recent); `first` The first one | |
| `play.speed` | Duration of a frame (ms) | Durée d'une image (ms) | number | integer | `1000` | 100 to 10000 | At speed ×1; the speed button of the play bar multiplies it (×0.5 to ×4) for the session. |
| `play.loop` | Loop | Lecture en boucle | toggle | bool | `false` | true / false | |
| `play.autoPlay` | Play automatically on opening | Lecture automatique à l'ouverture | toggle | bool | `false` | true / false | Once, from the first frame. Not when animations are reduced (Style › Animations or the system) nor on a dashboard tile. |
| `play.transition` | Animated transitions | Transitions animées | toggle | bool | `true` | true / false | Values, positions and colors move smoothly from one frame to the next. |
**Play bar / Barre de lecture**
| Option ID | Label (EN) | Label (FR) | Control | Type | Default | Allowed values | Notes |
|---|---|---|---|---|---|---|---|
| `play.controls` | Play bar | Barre de lecture | toggle | bool | `true` | true / false | |
| `play.position` | Bar position | Position de la barre | dropdown | enumeration | `bottom` | `bottom` Bottom; `top` Top | Visible when `play.controls` = `true` |
| `play.ticks` | Tick marks | Graduations | dropdown | enumeration | `auto` | `auto` Automatic; `all` Every frame; `none` None | Visible when `play.controls` = `true` |
| `play.tickLabels` | Tick labels | Étiquettes des graduations | toggle | bool | `true` | true / false | Visible when `play.controls` = `true` |
| `play.stepButtons` | Start and end buttons | Boutons début et fin | toggle | bool | `true` | true / false | Visible when `play.controls` = `true` |
| `play.speedButton` | Speed button | Bouton de vitesse | toggle | bool | `true` | true / false | Visible when `play.controls` = `true` |
**Large value / Valeur en grand**
| Option ID | Label (EN) | Label (FR) | Control | Type | Default | Allowed values | Notes |
|---|---|---|---|---|---|---|---|
| `play.showLabel` | Current value in large type | Valeur en cours en grand | toggle | bool | `true` | true / false | |
| `play.labelSize` | Large value size | Taille de la valeur en grand | number | formatting | `44` | 12 to 160 | Visible when `play.showLabel` = `true` |
| `play.labelPosition` | Large value position | Position de la valeur en grand | dropdown | enumeration | `bottomRight` | `bottomRight` Bottom right; `topRight` Top right; `topLeft` Top left; `bottomLeft` Bottom left; `center` Center | Visible when `play.showLabel` = `true` |
**More settings / Autres réglages**
| Option ID | Label (EN) | Label (FR) | Control | Type | Default | Allowed values | Notes |
|---|---|---|---|---|---|---|---|
| `play.sameScale` | Same scale for every frame | Même échelle pour toutes les images | toggle | bool | `true` | true / false | The colors keep the same meaning from one frame to the next (recommended). Off: each frame uses its own lightest and darkest cell. |
### Interactions (`interaction`, Format pane)
| Option ID | Label (EN) | Label (FR) | Control | Type | Default | Allowed values | Notes |
|---|---|---|---|---|---|---|---|
| `interaction.hover` | Highlight on hover | Mettre en avant au survol | toggle | bool | `true` | true / false | |
| `interaction.dim` | Dimmed items opacity (%) | Opacité des éléments estompés (%) | number | integer | `25` | 5 to 80 | |
| `interaction.crosshair` | Hover: emphasize the row and the column | Survol : souligner la ligne et la colonne | toggle | bool | `true` | true / false | |
| `interaction.headers` | Click a name = select the row or the column | Clic sur un nom = sélectionner la ligne ou la colonne | toggle | bool | `true` | true / false | Also month, day and year names in the calendar. |
### Tooltips / Infobulles (`tooltip`, Format pane)
The card header toggle is `tooltip.show`.
| Option ID | Label (EN) | Label (FR) | Control | Type | Default | Allowed values | Notes |
|---|---|---|---|---|---|---|---|
| `tooltip.show` | Show | Afficher | toggle | bool | `true` | true / false | Tooltip on hover (with the fields of the "Tooltips" well and report page tooltips). |
### Title / Titre (`title`, Format pane)
The card header toggle is `title.show`.
**Title / Titre**
| Option ID | Label (EN) | Label (FR) | Control | Type | Default | Allowed values | Notes |
|---|---|---|---|---|---|---|---|
| `title.show` | Show | Afficher | toggle | bool | `true` | true / false | |
| `title.text` | Text | Texte | text | text | (empty) | | Leave empty for an automatic title built from the fields. |
| `title.fontSize` | Size | Taille | number | formatting | `14` | 7 to 40 | |
| `title.bold` | Bold | Gras | toggle | bool | `true` | true / false | |
| `title.italic` | Italic | Italique | toggle | bool | `false` | true / false | |
| `title.underline` | Underline | Souligné | toggle | bool | `false` | true / false | |
| `title.color` | Color (empty = text) | Couleur (vide = texte) | color | fill | (empty) | hex color | |
| `title.bgColor` | Background color | Couleur d'arrière-plan | color | fill | (empty) | hex color | |
| `title.align` | Horizontal alignment | Alignement horizontal | dropdown | enumeration | `left` | `left` Left; `center` Center; `right` Right | |
| `title.wrap` | Text wrap | Retour automatique à la ligne | toggle | bool | `true` | true / false | |
**Subtitle / Sous-titre**
| Option ID | Label (EN) | Label (FR) | Control | Type | Default | Allowed values | Notes |
|---|---|---|---|---|---|---|---|
| `title.subtitle` | Subtitle | Sous-titre | text | text | (empty) | | Several lines allowed: type \n to go to the next line. |
| `title.subFontSize` | Size | Taille | number | formatting | `11` | 7 to 30 | Visible when `title.subtitle` = |
| `title.subColor` | Color (empty = secondary text) | Couleur (vide = texte secondaire) | color | fill | (empty) | hex color | Visible when `title.subtitle` = |
| `title.subItalic` | Italic | Italique | toggle | bool | `false` | true / false | Visible when `title.subtitle` = |
**Divider / Séparateur**
| Option ID | Label (EN) | Label (FR) | Control | Type | Default | Allowed values | Notes |
|---|---|---|---|---|---|---|---|
| `title.divider` | Show divider | Afficher le séparateur | toggle | bool | `false` | true / false | |
| `title.dividerColor` | Color (empty = lines) | Couleur (vide = traits) | color | fill | (empty) | hex color | Visible when `title.divider` = `true` |
| `title.dividerStyle` | Line style | Style de trait | dropdown | enumeration | `solid` | `solid` Solid; `dashed` Dashed; `dotted` Dotted | Visible when `title.divider` = `true` |
| `title.dividerWidth` | Width | Épaisseur | number | integer | `1` | 1 to 6 | Visible when `title.divider` = `true` |
**Spacing / Espacement**
| Option ID | Label (EN) | Label (FR) | Control | Type | Default | Allowed values | Notes |
|---|---|---|---|---|---|---|---|
| `title.spaceBelow` | Space below the title (px) | Espace sous le titre (px) | number | integer | `4` | 0 to 40 | |
### Source note / Note de source (`source`, Format pane)
The card header toggle is `source.show`.
| Option ID | Label (EN) | Label (FR) | Control | Type | Default | Allowed values | Notes |
|---|---|---|---|---|---|---|---|
| `source.show` | Show | Afficher | toggle | bool | `false` | true / false | |
| `source.text` | Text | Texte | text | text | (empty) | | |
| `source.fontSize` | Size | Taille | number | formatting | `9` | 6 to 20 | |
| `source.italic` | Italic | Italique | toggle | bool | `false` | true / false | |
| `source.color` | Color (empty = secondary text) | Couleur (vide = texte secondaire) | color | fill | (empty) | hex color | |
| `source.align` | Alignment | Alignement | dropdown | enumeration | `left` | `left` Left; `center` Center; `right` Right | |
### Frame / Cadre (`container`, Format pane)
**Background / Arrière-plan**
| Option ID | Label (EN) | Label (FR) | Control | Type | Default | Allowed values | Notes |
|---|---|---|---|---|---|---|---|
| `container.bgShow` | Background | Arrière-plan | toggle | bool | `false` | true / false | |
| `container.bgColor` | Color | Couleur | color | fill | `#FFFFFF` | hex color | Visible when `container.bgShow` = `true` |
| `container.bgColor2` | Gradient end (optional) | Fin du dégradé (optionnel) | color | fill | (empty) | hex color | Visible when `container.bgShow` = `true` |
| `container.bgTransparency` | Transparency (%) | Transparence (%) | slider | numeric | `0` | 0 to 100 | Visible when `container.bgShow` = `true` |
**Border / Bordure**
| Option ID | Label (EN) | Label (FR) | Control | Type | Default | Allowed values | Notes |
|---|---|---|---|---|---|---|---|
| `container.border` | Border | Bordure | toggle | bool | `false` | true / false | |
| `container.borderColor` | Color (empty = lines) | Couleur (vide = traits) | color | fill | (empty) | hex color | Visible when `container.border` = `true` |
| `container.borderWidth` | Width | Épaisseur | number | integer | `1` | 0 to 6 | Visible when `container.border` = `true` |
| `container.radius` | Rounded corners | Coins arrondis | number | integer | `8` | 0 to 24 | |
**Shadow / Ombre**
| Option ID | Label (EN) | Label (FR) | Control | Type | Default | Allowed values | Notes |
|---|---|---|---|---|---|---|---|
| `container.shadow` | Shadow | Ombre | toggle | bool | `false` | true / false | |
| `container.shadowColor` | Color (empty = soft) | Couleur (vide = douce) | color | fill | (empty) | hex color | Visible when `container.shadow` = `true` |
| `container.shadowSize` | Blur (px) | Flou (px) | number | integer | `12` | 0 to 40 | Visible when `container.shadow` = `true` |
**Spacing / Marges**
| Option ID | Label (EN) | Label (FR) | Control | Type | Default | Allowed values | Notes |
|---|---|---|---|---|---|---|---|
| `container.padding` | Inner padding | Marge intérieure | number | integer | `8` | 0 to 40 | |
### Language and numbers / Langue et nombres (`texts`, Format pane)
| Option ID | Label (EN) | Label (FR) | Control | Type | Default | Allowed values | Notes |
|---|---|---|---|---|---|---|---|
| `texts.language` | Interface language | Langue de l'interface | dropdown | enumeration | `auto` | `auto` Same as Power BI; `fr` French; `en` English | |
| `texts.numberLocale` | Number format locale (e.g. en-GB) | Format des nombres (ex. fr-FR) | text | text | (empty) | | Thousands and decimal separators. Empty: same as Power BI. |
### Other objects (not in the Format pane cards above)
- `heatmap`: `heatmap.mode` (enumeration), `heatmap.shape` (enumeration), `heatmap.inner` (integer), `heatmap.aggregate` (enumeration).
- `compare`: `compare.mode` (enumeration), `compare.lowerIsBetter` (bool), `compare.arrows` (bool).