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

Scatter Plume: 18 how-to guides (quadrants, animation, density…)

Step by step: sort products into four families, animate the cloud over time, zoom in, put a flag inside each bubble, read thousands of points as density.

Lire en français

These recipes start from a Scatter 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 sort my products into four families ★?

Your management wants to know which products are drivers, niches or products to review.

  1. Start from the step-by-step chart (Details = Product, X axis = Orders, Y axis = Margin rate).
  2. Quadrants ★ card: turn on Show ★. The cloud is split at the average of orders (631) and the average margin rate (43.2%).
  3. Quadrant names group: Top right = "Drivers", Top left = "Profitable niches", Bottom right = "Low-margin volume", Bottom left = "To review".
  4. Keep Tint the top-right quadrant on.

Result: the candle, the throw, the vase and the cushion are drivers; the lamp is a profitable niche; the bedding set is low-margin volume; the sofa, the table, the armchair and the shelf are to review.

Tip: Vertical split = Median of X resists better to an outlier product that pulls the average.

How do I split the cloud at a business threshold chosen by the reader ★?

The average moves with filters. Your controller wants a fixed margin threshold that readers can adjust.

  1. Modeling › New parameter › Numeric range: name it Margin threshold, from 0.30 to 0.60, increment 0.01, default 0.45. Power BI creates the table and a slicer.
  2. Create the measure:
// Value chosen in the slicer; 0.45 when nothing is chosen
Chosen threshold = SELECTEDVALUE ( 'Margin threshold'[Margin threshold], 0.45 )
  1. Quadrants ★ card: Horizontal split = Fixed value.
  2. Drag Chosen threshold into Dynamic format, then right-click the field › Rename for this visual: quadrants.yValue.

Result: the horizontal line follows the slicer. At 0.45, the lamp (45%) sits on the line and the cushion (46%) is just above.

Warning: the fixed value is in the unit of the measure: 0.45 for 45%, not 45.

How do I label only the useful points?

Ten labels clutter; none leaves readers guessing. Choose which ones to show.

  1. Data labels card: turn on Show.
  2. Labeled points = Selected.
  3. Content = Name and Y value.
  4. Click a point, then Ctrl + click other ones.

Result: only the clicked points show their name and margin rate. For a permanent display, go back to Largest (N) and set N.

How do I tell categories apart without relying on color?

Your report is printed in black and white, or read by color-blind people.

  1. Legend (series) = Category.
  2. Points card: Shape = One shape per series.
  3. Keep Outline on: each shape stands out from its neighbors.

Result: Furniture, Decor and Textiles each have their shape (circle, square, diamond…), repeated in the legend. In Windows high contrast mode, one shape per series is enforced.

How do I check whether two measures move together ★?

You want to know if the most ordered products are also the most profitable, and whether it holds in each category.

  1. Analytics pane, Trend ★ card: turn on Show.
  2. Keep Show R² on.
  3. Turn on One trend per series for one line per category.

Result: a rising line means "more orders, more margin". R² tells how closely points follow the line: close to 1, the relationship is strong; close to 0, there is none.

How do I color points by a third measure ★?

Without a legend, you want color to show revenue, on top of size.

  1. Remove the field from Legend (series) if there is one.
  2. Data colors card: Coloring = Gradient by a value ★.
  3. Gradient value = Size.
  4. To change the palette: Style card, turn on Customize colors, then Gradient palette (e.g. Viridis ★).

Result: bubbles go from light to dark according to their revenue.

How do I draw a target on each axis ★?

You aim for at least 500 orders and a 40% margin, and want to see who is in the target.

  1. Analytics pane, Reference lines ★ card, Line 2 group: turn on Show, Axis = X axis (vertical), Value = Constant, Constant value = 500, Label = "Volume target".
  2. Line 3 group: turn on Show, Axis = Y axis (horizontal), Value = Constant, Constant value = 0.4, Label = "Margin target".
  3. Reference band group: turn on Show, Axis = Y axis, From = 0.4, To = 0.6, Label = "Target zone".

Result: two dashed lines and a light band show the products that meet both targets.

How do I filter the report on a group of points?

You want to see the sales detail of every product "to review".

  1. Check that Interactions › Select by drawing a rectangle is on (default).
  2. Drag the mouse diagonally around the points of the bottom-left quadrant.
  3. To add more, hold Ctrl and draw a second rectangle.
  4. To clear everything, click the chart background.

Result: the other visuals of the page are filtered on the selected products.

How do I animate the cloud over time?

You want to show how each product moved, month after month.

  1. Add a Month column to your table (a date on the first of the month) and one row per product and month.
  2. Drag Month into Play axis (the column itself, not the Date Hierarchy). To read "Apr 2025" on the play bar, give the column the mmm yyyy format (Column tools › Format).
  3. Below the chart, click ▶. Bubbles glide from one month to the next; the current month is written large in the background.
  4. Click a bubble: it stays selected for every month and leaves a trail behind it. Play again to follow its path.
  5. Playback card: Duration of a frame (ms) = 600 to speed up, Loop for a lobby screen.

Result: a "Gapminder-style" chart that tells the story without a table of figures.

How do I zoom into a crowded corner of the cloud?

A few points squash the scale and the rest of the cloud is packed.

  1. Hold Shift and draw a rectangle around the area you care about.
  2. For fine control: Zoom card, turn on the X and Y sliders, then drag the window or its handles.
  3. Double-click the chart (or the ⟲ button) to go back to the full view.

Result: the points of the area spread out and become readable; the other visuals of the page are not filtered.

How do I label only some points?

You want to name the flagship products, and only them, regardless of their size.

  1. Create the measure:
// Product name when revenue exceeds 50,000, blank otherwise
Flagship label =
IF ( [Revenue] > 50000, SELECTEDVALUE ( Products[Product] ) )
  1. Drag it into Label (text).

Result: only the products above 50,000 carry their name, even when the Data labels card is off. The text can be anything: "New", "To watch"…

How do I make one point stand out ★?

You present your store against the network and want readers to find it at once.

  1. Highlight ★ card: Highlighted points ★ = "Lyon store" (one name per line for several).
  2. Keep Other points in gray and Label highlighted points on.

Result: your store keeps its color and its name; the others turn light gray. To let readers choose, use a measure in the Highlight ★ field instead (for example IF ( SELECTEDVALUE ( Stores[Store] ) = SELECTEDVALUE ( 'Choice'[Store] ), 1 )).

How do I compare the same cloud by channel ★?

You want to see whether the volume / margin relationship is the same in store and on the web.

  1. Drag Channel into Small multiples ★.
  2. Analytics pane, Trend ★: turn on Show and Show the equation.

Result: one small cloud per channel, with the same axes, each with its line and equation.

How do I find customer families without defining them first ★?

You have 500 customers (purchase frequency, average basket) and look for profiles.

  1. Analytics pane, Automatic clusters ★: turn on Show. Keep Number of clusters at 0.
  2. Confidence ellipses ★: turn on Show to circle each cluster.
  3. Click a cluster in the legend to filter the report on its customers.

Result: customers are split into a few colored clusters ("Cluster 1 (120)"…), circled and numbered. Rename them with Cluster name ("Profile").

How do I compare planned and actual ★?

Each project has a budget (X) and an actual cost (Y): those above the diagonal overrun.

  1. Put Budget in X axis and Actual cost in Y axis, Project in Details.
  2. Analytics pane, Symmetry and ratio ★, Symmetry shading group: turn on Show, Text where Y > X = "Overrun", Text where Y < X = "Under budget".
  3. For two equal areas, set X axis › Minimum and Y axis › Minimum to 0 and the same Maximum on both axes.

Result: overrunning projects are in the "Overrun" tinted area; the diagonal marks the balance.

How do I read a cloud of several thousand points ★?

With 7,000 orders, points overlap and you can no longer see where they concentrate.

  1. Density ★ card: turn on Show ★, Points = Density instead of the points (clickable cells). For a smooth heat map under the points, choose Shape = Continuous (smooth gradient) instead; for curves that do not hide the points, Contour lines.
  2. Marginal distributions ★ card: turn on Show.
  3. If amounts are widely spread, switch X axis › Scale and Y axis › Scale to Logarithmic.

Result: dark cells (or the red core of the heat map) show where most orders are; the marginal histograms give the distribution of each measure. Clicking a hexagon selects its orders.

How do I put a flag or a logo inside each point ★?

You compare countries (or brands) and want readers to recognize them without reading the labels.

  1. Prepare a column that holds each image as base64. In Power Query, for a file: Binary.ToText ( File.Contents ( "C:\Images\fr.png" ), BinaryEncoding.Base64 ). A web address does not work: the visual never loads it.
  2. Create the measure:
// Embedded image of the point's country (SVG here; data:image/png;base64, for a PNG)
Flag = "data:image/svg+xml;base64," & SELECTEDVALUE ( Countries[Flag base64] )
  1. Drag Flag into Image ★.
  2. Points card, Images ★ group: Minimum size of a point with an image (px) = 30 so that small countries stay readable; turn off Border in the series color for a bare image.

Result: each bubble shows its flag, circled in the color of its continent; the bubble stays clickable like a normal point. Page "5 · Countries and flags ★" of the sample report shows this setup.

Beyond 5,000 points, images are not drawn (the points are then drawn in one block).

How do I see where a point spent its time ★?

With the play axis, a line trail zigzags when a product changes a lot from one month to the next. You would rather see the area where it stays most often.

  1. Keep Month in Play axis and click one or more points (Ctrl + click).
  2. Playback card: Trail style = Density ★, or Lines and density ★ to keep the path.
  3. Without a play axis, the same idea exists for the selection: Interactions card, Density around the selection = Points of the same series ★ (the whole series of the clicked point) or Selected points ★.

Result: a patch of color under the points shows the most frequent positions, across all dates; with several points from different series, each series has its own patch, in its color. Clicking the background clears the selection and the density.

How do I draw margin-rate lines (y = a·x) ★?

With revenue on X and gross margin on Y, each line that starts at the origin is a margin rate: products above the "50%" line have a margin rate above 50%.

  1. X axis = Revenue; Y axis = Gross margin; Details = Product.
  2. Analytics pane, Slope lines y = a·x ★ card, Line 1 group: turn on Show, Slope a (y = a·x + b) = 0.3, Label = 30%.
  3. Line 2 group: turn on Show, Slope a (y = a·x + b) = 0.5, Label = 50%.
  4. Optional, a computed slope: create the measure Average rate = CALCULATE ( [Margin rate], REMOVEFILTERS ( Products ) ), drag it into Dynamic format and rename it slopes.a3; turn on Line 3.

Result: two (or three) dashed lines start at the origin; at a glance, you see which products have a margin above the target rate. The lines stay correct on a logarithmic axis.

How do I drill down from a category to its products?

One point per product is sometimes too many: start with the categories, then drill down.

  1. Drag Category, then Product, into Details (one point each).
  2. The cloud shows one point per category. Turn on drill mode (the ↓ arrow in the visual header), then click a category: its products appear.
  3. To see everything at once, choose Expand all down one level (⇊): one point per product, named "Category · Product".

Result: the same drill-down as in the native scatter chart, with Scatter Plume's quadrants, trend and styles.

How do I keep the same axes when filtering?

When a slicer filters the report, the axes refit to the remaining points: two selections can no longer be compared. Pin the maximums with measures that ignore filters.

  1. Create the measures:
X axis max =
CALCULATE (
    MAXX ( VALUES ( Products[Product] ), [Revenue] ),  -- the rightmost point…
    REMOVEFILTERS ( Products )                         -- …computed without any filter
)

Y axis max =
CALCULATE ( MAXX ( VALUES ( Products[Product] ), [Gross margin] ), REMOVEFILTERS ( Products ) )
  1. Drag both measures into Dynamic format, then rename them for this visual xAxis.max and yAxis.max.
  2. Filter with a slicer: the axes no longer move, only the points change.

Don't use ALLSELECTED (): it follows slicers and cross-filters, so the scale would still move. To ignore just one filter, remove only the filtered column, for example REMOVEFILTERS ( Products[Category] ).

Learn more