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çaisThese 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 visual | Series | Orientation |
|---|---|---|
| Stacked bar chart | Stacked | Bars (horizontal) |
| Stacked column chart | Stacked | Columns (vertical) |
| Clustered bar chart | Clustered (side by side) | Bars (horizontal) |
| Clustered column chart | Clustered (side by side) | Columns (vertical) |
| 100% stacked column chart | 100% stacked | Columns (vertical) (Bars for the 100% stacked bar chart) |
- 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.
- In Layout, set Series and Orientation according to the table.
- 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.
- Category =
Region; Values =Revenue 2024, thenRevenue 2025(in that order). - Layout › Series = Clustered (side by side); Orientation = Columns (vertical).
- Variance arrows ★ card: turn on Show ★.
- Compare = 2nd series to the 1st, within each group.
- 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.
- Category =
Region; Values =Revenue; Target =Target. - Target card: Marker = Ghost bar (the dotted outline of the bar to reach).
- Variance to target = In % ★.
- Keep Color when reached and Color when missed, or pick your brand colors.
- 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.
- Category = your
Productcolumn; Values =Revenue. - Sort card: turn on Top N ★.
- N = 5.
- 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.
- Category =
Region; Legend (series) =Channel; Values =Revenue; Layout › Series = Stacked. - Sort card, Series group: Series order = Custom.
- Names in order (separated by ;):
Web; Store. - 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).
- Category =
Region; Legend (series) =Channel; Values =Revenue; Layout › Series = Stacked. - Data labels card: turn on Show.
- Content = Value and share of the category.
- 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.
- Category =
Region; Legend (series) =Channel; Values =Revenue 2024, thenRevenue 2025. - Layout › Series = Stacked and clustered ★.
- 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.
- Category =
Region; Values =Target, thenRevenue(the target first). - Layout › Series = Overlapped.
- Overlap group: Drawing order = Series order; turn on Following series narrower.
- Data colors card: give
Targeta 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.
- Category =
Region; Values =Revenue; dragYearinto Play axis ★. A play bar appears below the chart. - Bar chart race ★ card: Bar order = Ranking at each frame (re-sort); Bars shown (Top N of each frame) = 10.
- Playback ★ card: Duration of a frame (ms) = 1500; turn on Loop if the report runs on a screen.
- 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. - 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.
- Create the measure:
Axis max =
CALCULATE (
MAXX ( VALUES ( Sales[Region] ), [Revenue] ), -- the largest bar…
REMOVEFILTERS ( Sales ) -- …computed without any filter
)
- Drag
Axis maxinto the Dynamic format field, then rename it for this visualvalAxis.max(the Value axis › Maximum setting). - 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
- Getting started with Bar Plume: the data to prepare and a first visual, step by step.
- Bar Plume fields and settings: every field well and every setting.
- Getting started with Plume visuals: installation, license, styles and shared settings.
- The visual's page: Bar Plume. A question? Support.