Skip to content
Plume Visuals
← Back
How-to guidesIntermediate7 min read· Published on October 14, 2026

Bar Plume: 8 how-to guides (variance arrows, target, Top N…)

Match a native bar chart, compare 2025 with 2024 using variance arrows, show actuals vs. target in %, keep the top 5 and group the rest: step-by-step recipes.

Lire en français

These recipes start from a Bar Plume chart that is already set up. If that's not the case, begin with getting started: the examples reuse its data. Features marked ★ are premium: they work without a license, with a watermark.

How do I reproduce a native bar chart?

You are replacing a native visual with Bar Plume and want the same look. Two settings are enough, in Format › Layout.

Native visualSeriesOrientation
Stacked bar chartStackedBars (horizontal)
Stacked column chartStackedColumns (vertical)
Clustered bar chartClustered (side by side)Bars (horizontal)
Clustered column chartClustered (side by side)Columns (vertical)
100% stacked column chart100% stackedColumns (vertical) (Bars for the 100% stacked bar chart)
  1. Drag the same fields as in the native visual: its category Y-axis or X-axis goes into Category, its Legend into Legend (series), its values into Values.
  2. In Layout, set Series and Orientation according to the table.
  3. To keep the bar order of the original visual, set Sort › Sort by.

Result: the same chart, with Bar Plume's options on top.

How do I compare 2025 with 2024 using variance arrows? ★

Your management wants to see, region by region, whether the year is growing, and by how much.

  1. Category = Region; Values = Revenue 2024, then Revenue 2025 (in that order).
  2. Layout › Series = Clustered (side by side); Orientation = Columns (vertical).
  3. Variance arrows ★ card: turn on Show ★.
  4. Compare = 2nd series to the 1st, within each group.
  5. Show the variance = In %.

Result: above each pair, a green or red arrow with the change (London: +11.0%, North West: +12.0%, Wales: +8.3%).

Tip: for a sequence of months, keep a single series and choose Compare = Each category to the previous one: each column shows its change from the month before.

How do I show actuals vs. target with the variance in %? ★

You track sales targets and want to see at a glance who is reaching them.

  1. Category = Region; Values = Revenue; Target = Target.
  2. Target card: Marker = Ghost bar (the dotted outline of the bar to reach).
  3. Variance to target = In % ★.
  4. Keep Color when reached and Color when missed, or pick your brand colors.
  5. For costs or lead times, turn on Lower is better.

Result: each bar carries its target and the colored variance (e.g., London: +3.8%, Wales: -2.1%). The tooltip repeats the revenue, the target and the variance.

Warning: with several measures side by side, the variance is calculated on the first one; in Stacked, on the stack total.

How do I keep the top 5 and group the rest? ★

With 40 products, the chart becomes unreadable. You want the top 5 and one bar for the rest.

  1. Category = your Product column; Values = Revenue.
  2. Sort card: turn on Top N ★.
  3. N = 5.
  4. Leave Group the rest into "Others" on; in "Others" label, type "Other products".

Result: 6 bars, including "Other products", which adds up the remaining 35. Clicking that bar filters the report on those 35 products. In small multiples, the Top N is calculated within each panel.

Warning: "Others" is a sum. For a rate or an average, turn off Group the rest into "Others".

Tip: to let readers choose N, create a numeric range parameter (Modeling › New parameter › Numeric range), then a measure Top N value = SELECTEDVALUE ( 'Number of products'[Number of products], 5 ) dragged into Dynamic format and renamed sort.n (right-click › Rename for this visual).

How do I force the series order (Web before Store)?

By default, series follow the model order. Your style guide wants web always first, at the bottom of each stack.

  1. Category = Region; Legend (series) = Channel; Values = Revenue; Layout › Series = Stacked.
  2. Sort card, Series group: Series order = Custom.
  3. Names in order (separated by ;): Web; Store.
  4. Turn on Legend in the visual order of stacks so the legend reads in the same direction as the segments.

Result: the Web segment is the first in each stack, and each channel keeps its color.

How do I show the value and share of each segment?

In a stacked column chart, you want to read both "930K" and "36% of the region" (web in London, both years combined).

  1. Category = Region; Legend (series) = Channel; Values = Revenue; Layout › Series = Stacked.
  2. Data labels card: turn on Show.
  3. Content = Value and share of the category.
  4. Hide below (% of the category) = 5: labels on very small segments disappear.

Result: each segment shows its value and its share of the region; the total stays at the end of the stack.

Tip: in 100% stacked, turn on Total at the end of 100% bars ★ to keep the actual total of each category, which Power BI can't display.

How do I stack by channel and cluster by year? ★

For each region, you want a 2024 stack and a 2025 stack, split by channel.

  1. Category = Region; Legend (series) = Channel; Values = Revenue 2024, then Revenue 2025.
  2. Layout › Series = Stacked and clustered ★.
  3. Data labels card, Totals group: leave Total at the end of stacks on.

Result: two stacks per region, one per measure, each split into Store and Web; each stack has its total. Without a Legend, you can choose the stack for each measure yourself: Per-series settings card, Apply settings to = the series, then Stack (stacked and clustered) = Stack 1, Stack 2…

How do I draw actuals inside the plan?

A wide, light bar for the target, a thin, dark bar for actuals, in the same place: it reads instantly.

  1. Category = Region; Values = Target, then Revenue (the target first).
  2. Layout › Series = Overlapped.
  3. Overlap group: Drawing order = Series order; turn on Following series narrower.
  4. Data colors card: give Target a light gray.

Result: each region shows a thin bar (revenue) inside a wide bar (the target). To fine-tune the width, use Per-series settings › Relative width (%, 0 = automatic).

How do I animate a bar chart race? ★

You want to show regions overtaking each other from one year to the next, like the bar chart races seen in the media.

  1. Category = Region; Values = Revenue; drag Year into Play axis ★. A play bar appears below the chart.
  2. Bar chart race ★ card: Bar order = Ranking at each frame (re-sort); Bars shown (Top N of each frame) = 10.
  3. Playback ★ card: Duration of a frame (ms) = 1500; turn on Loop if the report runs on a screen.
  4. Optional: drag into Image (base64) ★ a measure that returns one image per region (logo, flag), formatted as "data:image/svg+xml;base64," & …; Bar chart race ★ card, Image shape = Circle.
  5. Click ▶ in the play bar.

Result: at each year, bars glide to their new rank and values count up to the new figure; the current year is written in large type in a corner. Each region keeps its color throughout the race.

How do I keep the same scale when filtering?

When a slicer filters the report, the value axis refits to the remaining bars: two selections can no longer be compared at a glance. Pin the axis maximum with a measure that ignores filters.

  1. Create the measure:
Axis max =
CALCULATE (
    MAXX ( VALUES ( Sales[Region] ), [Revenue] ),  -- the largest bar…
    REMOVEFILTERS ( Sales )                        -- …computed without any filter
)
  1. Drag Axis max into the Dynamic format field, then rename it for this visual valAxis.max (the Value axis › Maximum setting).
  2. Filter with a slicer: the axis keeps the same bound, and the bars shrink instead of filling the whole height.

Don't use ALLSELECTED (): it follows slicers and cross-filters, so the scale would still move. REMOVEFILTERS ( Sales ) (or ALL ( Sales )) ignores every filter; to keep only one filter, remove just the columns filtered by the slicer, for example REMOVEFILTERS ( Sales[Channel] ). Same idea for valAxis.min.

Learn more