Make a scatter chart of thousands of points readable with hexagons
Getting started with Hexbin Plume: prepare a one-point-per-row table, insert the visual, read the density, filter by clicking a bin and zoom in down to the points.
Lire en françaisIn short
What is a hexbin? When a scatter chart holds thousands of points, they pile up on top of each other: you see a blob, not where the points concentrate. A hexbin cuts the chart into small hexagonal bins (like a honeycomb) and colors each bin by the number of points inside: pale when there are few, dark when there are many.
Mini example. Out of 15,000 homes sold, placed by area (X axis) and price (Y axis), the bin "55 to 65 m², £150,000 to £180,000" holds 330 homes: it is dark red; the bin "180 m², £1 million" holds 2: it is pale yellow.
- What the visual does. Hexbin Plume groups up to 300,000 points into bins, without sampling (no point is hidden). The color follows the number of points or a calculation on a measure (sum, average, median, minimum, maximum). Clicking a bin filters the page on all its points; when you zoom in, the bins get finer, then the points appear. In premium (★), the density changes from one year to the next with a play axis, and the visual adds advanced color scales (log, diverging), compares two groups, shows the change between two periods, draws proportional bins, contour lines, marginal histograms, a trend line and small multiples.
- When to use it. Lots of points: customers (average basket and frequency), orders (amount and lead time), sensors (temperature and humidity), homes (area and price), employees (seniority and salary).
- When to prefer something else. A few dozen points you want to name one by one: Scatter Plume. Two categories in rows and columns: Matrix Plume with a heat map.
- What you will learn. Prepare a one-point-per-row table and two measures, insert the visual, read the density and the tooltip of a bin, filter the page by clicking a bin, zoom in.
- What you need: Power BI Desktop, the Hexbin Plume visual installed (see the shared basics), a table with one ID per row and two numeric columns. The sample report PlumeHexbin-Sample-EN, in your "Downloads" area, shows 15,000 fictitious homes (page 1), a value per bin, the dominant city and the play axis (page 2) and the ★ features (page 3).
The data to provide
The shape. One row per point: an ID (the home, the customer, the order) and two numbers (the position on X and on Y). A category, a period and a third measure are optional.
| Home | City | Year | Area | Price | Rent |
|---|---|---|---|---|---|
| L00001 | Bristol | 2023 | 48 | 212,000 | 760 |
| L00002 | York | 2021 | 95 | 218,000 | 1,090 |
| L00003 | Leeds | 2024 | 62 | 118,000 | 610 |
| L00004 | Bristol | 2022 | 71 | 305,000 | 1,100 |
| L00005 | Norwich | 2019 | 120 | 214,000 | 1,200 |
| L00006 | York | 2024 | 55 | 142,000 | 650 |
| L00007 | Leeds | 2020 | 38 | 66,000 | 380 |
| L00008 | Bristol | 2024 | 33 | 160,000 | 520 |
To try without a file: Modeling › New table, then paste:
Homes =
DATATABLE (
"Home", STRING, "City", STRING, "Year", INTEGER, "Area", INTEGER, "Price", INTEGER, "Rent", INTEGER,
{
{ "L00001", "Bristol", 2023, 48, 212000, 760 },
{ "L00002", "York", 2021, 95, 218000, 1090 },
{ "L00003", "Leeds", 2024, 62, 118000, 610 },
{ "L00004", "Bristol", 2022, 71, 305000, 1100 },
{ "L00005", "Norwich", 2019, 120, 214000, 1200 },
{ "L00006", "York", 2024, 55, 142000, 650 },
{ "L00007", "Leeds", 2020, 38, 66000, 380 },
{ "L00008", "Bristol", 2024, 33, 160000, 520 }
}
)
Eight rows give eight bins: enough to follow the steps. To see a real hexbin, use the sample report (15,000 homes) or your own table.
The measures. The X and Y axes expect measures (a calculation Power BI redoes for the filters, written in DAX; see the glossary). With the Details field filled with the ID, each measure is computed for a single home: an average returns its value.
Average area = AVERAGE ( Homes[Area] ) -- one home per point: the average is its area
Average price = AVERAGE ( Homes[Price] )
Average rent = AVERAGE ( Homes[Rent] )
Pitfalls.
- Fill Details with the ID: without it, Power BI adds everything up and the visual gets a single point.
- If your table has several rows per home (several sales), the ID is still the right grain; pick the measure (sum, average) that makes sense.
- Rows where X or Y is blank are ignored. With a log scale, zero or negative values too (the visual says so in edit mode).
Step by step: your first hexbin in 10 minutes
- In the Visualizations pane, click the Hexbin Plume icon. An empty frame appears, with a start screen listing the fields to drop; enlarge it.
- Drag the
Homecolumn into Details (one point each). - Drag
Average areainto X axis, thenAverage priceinto Y axis. The bins appear, with the title "Average price vs Average area" and the legend "Number of points". - Read the legend: from the palest bin (1 point) to the darkest (the maximum). Dark bins show where homes concentrate.
- Hover a bin: it is outlined, its points appear, and the tooltip gives the number of homes (and their share), the area and price ranges of the bin.
- Click the darkest bin: the other visuals of the page filter on its homes (cross-filtering, see the glossary) and the other bins fade. Click the bin again to cancel.
- Drag the mouse over the chart: a rectangle selects every home inside.
- Hold Shift and drag over the small areas: the chart zooms in, the bins are recomputed finer. Double-click to go back to the full view.
- Open Format › Bins › Shape and size and try Bin size = Radius (px) with 20: fewer, larger bins.
- Drag
Cityinto Legend (category), then Format › Data colors › Coloring = Dominant category (Legend field): each bin takes the color of its most frequent city.
Expected result: a readable density map, a detailed tooltip per bin, a click that filters the page, a zoom that refines the bins.
Troubleshooting
| What you see | Likely cause | Solution |
|---|---|---|
| A single bin | The Details field is empty: Power BI adds everything up | Drag the ID into Details |
| "No point to show" | X or Y holds no numbers | Check the measures (numeric type) |
| Every bin has the same color | One point per bin (little data or bins too small) | Format › Bins › Bin size: larger radius |
| The bins are too big | Automatic size with few points | Radius in px or number of columns |
| Coloring by city does not apply, message in edit mode | The Legend field is empty | Drag a category into Legend |
| Points disappear with a log axis | Zero or negative values | Linear scale, or exclude those rows |
| "Premium preview" watermark | A ★ feature is used without a key | Key in Format › Plume Studio License, or a free setting |
| Clicking a bin is slow | A dense bin holds tens of thousands of points | Zoom in first, or filter the page |
Key takeaways
- One row per point and the ID in Details; X and Y as measures.
- Every point is counted, up to 300,000: no sampling.
- Clicking a bin filters the page on all its points; Shift + drag zooms in and refines the bins.
- The dominant category, the linear and square root scales and the zoom are free; the play axis, the log and diverging scales, comparing two groups, the change between frames and the ★ analytics work with a watermark until you enter a key.
Learn more
- Hexbin Plume how-to guides: recipes for common needs.
- Hexbin 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: Hexbin Plume. A question: support.