# Matrix Plume: 10 how-to guides (heatmap, share, tabular…)

> Subtotals at the bottom of each group, tabular layout, heatmap, share within the group, frozen total, collapsible years, and sparklines: step by step.

- Language: English
- Web page: https://plumevisuals.com/en/tutorials/matrix-plume-cas-pratiques
- Published: 2026-10-14
- Visual: Matrix Plume, technical reference: https://plumevisuals.com/ai/visuals/matrix.md
- If an option name in this tutorial differs from the technical reference, the reference is right (it is generated from the visual's code).

These recipes start from a Matrix Plume that is already set up. If it isn't, start with the [getting started guide](/en/tutorials/matrice-sous-totaux-carte-de-chaleur): the examples use its data. Features marked ★ are premium: they work without a license, with a watermark.

## How do I show the subtotal below each group, like in an accounting report?

Many readers expect a "Total" row that closes each group.

1. **Subtotals** card: check that **Row subtotals** is on.
2. Set **Position** to *"Total" row below the group*.
3. Type "Subtotal" in **Total label** if you prefer that word.
4. Choose a subtle **Totals background (empty = automatic)**.

**Result:** each expanded region ends with its total row; the grand total stays at the bottom.

## How do I show one column per level, like an Excel table?

The tabular layout makes reading easier when you want to see the region and the city on the same row.

1. **Row headers** card: set **Layout** to *Tabular (one column per level)*.
2. Set **Maximum width (% of the visual)** to 50 if the labels are cut off.
3. **Expand and collapse** card: set **Levels expanded at start** to 1 to show everything.

**Result:** a `Region` column and a `City` column side by side, followed by the values.

## How do I automatically expand the cities when a slicer keeps only one region?

Collapsed, the matrix is easy to read; but if the reader picks a region in a slicer, they want to see its cities right away.

1. Create the measure:

   ```dax
   -- 1 (cities expanded) if a single region is filtered, 0 otherwise
   Open Levels = IF ( HASONEVALUE ( Sales[Region] ), 1, 0 )
   ```

2. Drag it into the **Dynamic format** well.
3. Right-click the measure in the well › **Rename for this visual**: type `expand.startLevel`.

**Result:** with no filter, only the regions are shown; with a single region selected, its cities appear expanded.

## How do I color the cells like a heatmap? ★

A heatmap makes the strongest cities and years stand out at a glance.

1. **Column formatting** card: choose `Revenue` in the list at the top of the card.
2. Set **Conditional formatting** to *Background color scale ★*.
3. Set **Scale colors** to *Custom*, then choose a **Low color** and a **High color**.
4. Leave `Margin Rate` without formatting, or give it *Text color scale ★* for a more subtle read.

**Result:** the Revenue cells are shaded from lightest (low) to darkest (high); only the `Revenue` measure is colored.

> **Tip:** **Tip**: with no premium feature, the **Cell elements** card does the same job as the native table's conditional formatting: choose `Revenue` in **Apply settings to**, then set **Background color** to *Gradient* and choose **Minimum color (empty = style)** and **Maximum color (empty = style)**.

## How do I flag weak margins with a dot, subtotals included?

Regional managers want to spot at a glance the cities and regions whose margin falls behind. The free **Cell elements** card reproduces the icons of native conditional formatting (Power BI doesn't give the **fx** button to matrix-type visuals).

1. In **Format › Cell elements**, choose `Margin Rate` in **Apply settings to**.
2. Set **Icons** to *Rules*, leave **Icon set** on *Green / amber / red dots* and type in **Icon rules**, one rule per line:

```text
>= 0.45 : high
>= 0.35 : mid
else : low
```

3. Turn on **Apply to totals and subtotals** so that region subtotals and the grand total get their dot too.

**Result:** each margin rate, for cities, regions and totals, is preceded by a green, amber or red dot. The first matching rule wins. For the color to come from a measure (`Margin Color` returning `"#C0392B"` or `"#2E7D4F"`), drop it into **Cell elements fields**, then choose *Field value* and that field in **Based on field**.

## How do I show a flag or a logo in the row headers?

Each region has its logo, stored in the model as an image in text form (`data:image/svg+xml;base64,…`): a certified visual never loads a web address.

1. Add to your table a `Region Logo` column that holds the image as text (prepared in Power Query, one value per region).
2. Drag `Region Logo` into **Rows**, in place of `Region`.
3. Check that **Format › Images › Images in row and column headers** is on (it is by default), then set **Height (px)** to your liking.

**Result:** each region is shown as its logo, and still expands to its cities. Screen readers keep reading the value's text. The same idea works for the **Columns** field and, with **Column formatting › Images**, for value cells.

## How do I show each city's share of its region?

Raw revenue doesn't tell you whether a city carries a lot of weight in its region.

1. Create the `Share of Region` measure from ["The data you need"](/en/tutorials/matrice-sous-totaux-carte-de-chaleur#the-data-you-need), with the **Percentage** format.
2. Drag it into **Values**, after `Revenue`.
3. In **Column formatting**, choose `Share of Region` and set **Conditional formatting** to *Data bars ★* (or leave *None* to stay free).

**Result:** Bordeaux accounts for about 59% of Nouvelle-Aquitaine in 2025; each region row shows 100%.

## How do I keep the total visible when there are many columns? ★

With 24 months in columns, the grand total column disappears off to the right as soon as you scroll.

1. **Subtotals** card: check that **Column subtotals** and **Grand total column** are on.
2. Set **Grand total column position** to *Left (after the row headers, frozen) ★*.
3. If the total still scrolls, lower **Row headers › Maximum width (% of the visual)**: labels and total must fit within 75% of the visual's width to stay frozen.

**Result:** each row's total stays visible right after the labels, whichever column is displayed.

## How do I collapse years to see only their total? ★

With `Year` and then `Month` in **Columns**, the matrix gets very wide; collapsing a year sums it up in a single column.

1. Drag `Year`, then a month column from your data, into **Columns**.
2. **Subtotals** card: check that **Column subtotals** is on.
3. **Column groups** card: turn on **Collapsible groups ★**.
4. To start collapsed, turn on **Groups collapsed at start**.

**Result:** each year has a + / − button; when collapsed, it only shows its subtotal, calculated by Power BI.

## How do I see each row's trend? ★

A small line in each row saves you from adding a chart next to the matrix.

1. Check that a field is in **Columns** (with the sample, `Year` only gives two points; months give a real line).
2. **Sparklines ★** card: turn on **Show**.
3. Set **Type** to *Line* and **Position** to *After the row headers*.
4. Turn on **Minimum and maximum points**.

**Result:** a "Trend" column for each measure draws the evolution of each city and each region; hovering shows the values, and a click selects the row.

## Learn more

- [Getting started with Matrix Plume](/en/tutorials/matrice-sous-totaux-carte-de-chaleur): the data to prepare and a first visual, step by step.
- [Matrix Plume: every field and setting explained](/en/tutorials/matrix-plume-champs-et-reglages): each field well and each setting.
- [Getting started with Plume visuals](/en/tutorials/bien-demarrer-visuels-plume): installation, license, styles, and settings shared by all the visuals.
- The visual's page: [Matrix Plume](/en/visuals/matrix). A question? [Support](/en/support).
