Skip to content
Plume Visuals
← Back
Getting startedBeginner8 min read· Published on October 1, 2026

Filter a numeric range on a histogram

Get started with Range Plume: pick a range of prices, areas or lead times while seeing their distribution, from preparing the data to a fully configured slicer.

Lire en français

At a glance

  • What the visual does. Range Plume is a slicer (a visual that filters the rest of the page) for number columns: price, area, age, lead time… It draws the column's histogram (how many rows fall into each band of values) and places two handles on it. Picture the size gauge in a shoe store, with the number of customers for each shoe size above it: you can see where most customers are before you choose "from size 7 to 10". A summary box puts numbers on what the range keeps: row count, share of the total, median.
  • When to use it:
    • filter listings, orders or customers by price band, amount or age;
    • remove outliers from an analysis in one click;
    • offer named business ranges ("Studio", "Family"…) ★;
    • see right away how many rows and what share of revenue the range keeps.
  • When to use something else: to check specific values in a list (categories, or several non-adjacent bands), use Bar Slicer Plume. For dates, use Period Plume or Date Picker Plume (see the table below).
  • By the end, you will know how to:
    • prepare a numeric column and a count measure;
    • set up the histogram, the handles and the presets;
    • read the range impact box;
    • create named ranges ★;
    • fix the most common problems (column rejected, all bars the same height, slowness).
  • What you need: Power BI Desktop (recent version), the Range Plume visual installed (see the common basics), and a column of type number (whole or decimal).

Range, Period or Date Picker: which of the three slicers should you choose?

What you needSlicer to chooseWhy
Filter numbers between a minimum and a maximum (price, area, age, lead time)Range PlumeIt reads a numeric column and shows the distribution of values (histogram). It rejects dates.
Choose a period while seeing the trend of a measure, with rolling periods ("last 30 days", which moves forward every day) and a previous-year comparison ★Period PlumeIt draws a timeline of the measure and sends relative date filters. It also accepts monthly or yearly data.
Pick specific days in a calendar: one date, a week, a month, several dates ★, or only certain days (Fridays, month ends), with days without data dimmedDate Picker PlumeIt shows a real month-by-month calendar and selectable date rules. Its shortcuts send fixed dates.

The data to provide

The expected shape. Range Plume receives one row per distinct value of the column to filter. If 12 listings cost exactly €185,000, the visual receives a single "185,000" row, along with the number of listings concerned. Hence three elements:

  • a numeric column: this is what gets filtered. It must be a column (data stored row by row in a table), not a measure (a DAX calculation computed on the fly, see the glossary), because Power BI can only filter columns;
  • a count measure (COUNTROWS): it tells how many rows have each value. Without it, each distinct value counts as 1 and the histogram bars are wrong;
  • an optional additive measure (sum of an amount, a volume): the summary box will show what share of this total the range keeps.

Sample dataset: 12 fictitious real estate listings in Gironde, France, table Listings.

CityRoomsArea (m²)Price
Bordeaux245215000
Bordeaux368312000
Bordeaux492445000
Mérignac372289000
Mérignac5118468000
Pessac241172000
Pessac488335000
Talence124128000
Talence363258000
Bègles495318000
Bègles6160590000
Arcachon51401150000

The same dataset, ready to paste into Modeling › New table:

Listings =
DATATABLE (
    "City", STRING,
    "Rooms", INTEGER,
    "Area (m²)", INTEGER,
    "Price", INTEGER,
    {
        { "Bordeaux", 2, 45, 215000 },
        { "Bordeaux", 3, 68, 312000 },
        { "Bordeaux", 4, 92, 445000 },
        { "Mérignac", 3, 72, 289000 },
        { "Mérignac", 5, 118, 468000 },
        { "Pessac", 2, 41, 172000 },
        { "Pessac", 4, 88, 335000 },
        { "Talence", 1, 24, 128000 },
        { "Talence", 3, 63, 258000 },
        { "Bègles", 4, 95, 318000 },
        { "Bègles", 6, 160, 590000 },
        { "Arcachon", 5, 140, 1150000 }
    }
)

The measures to create (Modeling › New measure, one measure at a time):

// Counts the rows of the Listings table in the current context:
// for the value 185,000, it returns the number of listings at that price.
// Drag it into "Row count (weight)".
Listing count = COUNTROWS ( Listings )

// Adds up the prices: this is the "additive" measure whose share kept
// by the range the summary box will show. Drag it into "Measure (impact)".
Volume (total price) = SUM ( Listings[Price] )

// Optional: a measure to show in a card next to the slicer.
// It follows the range chosen in Range Plume.
Median price = MEDIAN ( Listings[Price] )

// Optional: share of listings kept by the range.
// REMOVEFILTERS removes the filter on the Price column
// to get the "no range" total as the denominator.
Listing share =
DIVIDE (
    [Listing count],
    CALCULATE ( [Listing count], REMOVEFILTERS ( Listings[Price] ) )
)

Preparation pitfalls

  • Column type. Only Whole number or Decimal number columns go into the Numeric field well. A text column ("215,000 €" typed as text) or a date column is rejected. Check the type in Table view › Column tools › Data type.

  • Too many distinct values. The visual loads at most 100,000 distinct values. Amounts with cents quickly create tens of thousands of them. Filter a rounded column (calculated column) instead:

    // -3 rounds to the nearest thousand, 0 to the unit, 1 to one decimal place
    Rounded price = ROUND ( Listings[Price], -3 )
    
  • Blank values or zero weight. Values whose count measure is blank or equal to 0 are ignored.

  • Negative values? The slider accepts them, but the logarithmic scale only applies to positive values, and Custom ranges ★ can't express a negative bound.

Step by step: your first Range Plume in 10 minutes

  1. In Modeling › New table, paste the DATATABLE code from the "The data to provide" section and confirm. The Listings table appears in the Data pane with 12 rows.

  2. Select the Listings table, then in Modeling › New measure, create Listing count and Volume (total price). Both measures appear under the table, with a calculator icon.

  3. In the Visualizations pane, click the Range Plume icon. An empty frame is added to the page, with its field wells.

  4. Drag the Price column into the Numeric field well. The histogram appears with two handles, the Minimum and Maximum boxes, preset buttons and the impact box. A small ⓘ indicates that the count measure is missing.

  5. Drag Listing count into Row count (weight). The ⓘ disappears: the bar heights now show the real number of listings.

  6. Drag Volume (total price) into Measure (impact). The summary box also shows the share of volume kept.

  7. In the Format pane, Number format card: set Display units to Thousands, then type € (a space, then the symbol) in Suffix (e.g. €). Values now read "250k €".

  8. Range impact card: type listings in Row name (e.g. orders). The summary box now talks about "listings" instead of "rows".

  9. Next to it, add a native Power BI Card visual with the Listing count measure. It shows 12.

  10. In Range Plume, type 150k in the Minimum box, press Enter, then 350k in Maximum and Enter. The filter is applied: the card shows 7, and the summary box shows 7 listings kept (58% of rows) and about 41% of the volume.

  11. Click Clear in the visual's header. The filter is removed: the card goes back to 12.

Troubleshooting

What you seeLikely causeFix
The column won't go into Numeric fieldThe column is of type text or dateChange its type to a number (Power Query or Column tools › Data type), or create a numeric calculated column
All bars have the same height, or there is an ⓘ in the summary boxThe Row count (weight) well is emptyAdd a COUNTROWS measure
Warning icon "The visual loads at most 100,000 values…" / slow visualToo many distinct values (amounts with cents)Filter a rounded column
Histogram squashed to the leftA few very high valuesHorizontal scale Logarithmic or Bar height Square root
The scale doesn't start at 0It follows the dataFill in Fixed lower bound / Fixed upper bound
Values beyond a handle stay in the reportThe handle is at the end of the scale and Open-ended at the extremes is onTurn this setting off
A preset no longer follows new dataPresets are sent as a fixed rangeClick the button again after the refresh
An entry is flagged as not recognizedBadly formed textType a plain number ("250000")
A "Premium preview" watermark appearsCustom ranges ★, a style, a palette or a Theme JSON ★ without a valid keyClear the ★ setting or paste a key (common section)

Key takeaways

  • A numeric column and a COUNTROWS measure are all you need for an accurate histogram.
  • One distinct value = one row received: round columns that are too precise.
  • Presets and the impact box tell you right away what the range keeps.
  • Presets are fixed when you click them; Open-ended at the extremes keeps values beyond a handle placed at the end of the scale.
  • For dates, use Period Plume (periods, trend) or Date Picker Plume (calendar).

Learn more