Using scatterplots with dynamic quadrants in Power BI
Want to get more out of the scatterplot visual in Power BI? In this article (and video), I’ll show you how to turn a standard scatterplot into an interactive visual with dynamic quadrants, transparent background colors, and even automatically placed quadrant labels.
Perfect for categorizing customers, products, or other data points into groups like Leaders, Challengers, or Visionaries, based on multiple measures at once.
✔️ Fully dynamic
✔️ Works with filters and slicers
✔️ No custom visuals needed
With a bit of clever DAX and some creative formatting, you can do a lot more with the default Power BI scatterplot than you might think!
The scatterplot
A scatterplot shows two measures on its axes. In this case, I chose Turnover on the Y-axis and Average Product Price on the X-axis. Scatterplots are often used to identify outliers or, like we’re doing here, to see which customers fall into which quadrant.
There’s also a third dimension: bubble size. I used Quantity of products bought. You don’t have to add labels, but in our case, even though it’s a bit crowded, users requested to keep them for easier identification.
In the tooltip you see the company name, the average product price, that's the average of all items bought by that customer, and the quantity.
Making it readable
Because many bubbles overlap, I made them transparent to help visualize the clusters.
💡 The Y-axis uses a logarithmic scale. Make sure your end-users understand this kind of scale. If not, consider using a linear scale instead.
To help focus, we also added an active zoom slicer on the Y-axis.
3 colors for 4 zones
The final scatterplot seems to have 4 colors but there are actually only 3 colors used. The left side of the scatterplot is red, the right side yellow. On top, there is blue.
Where these colors overlap, new colors are created:
Blue + Yellow = green
Blue + Red = purple-ish blue
This effect is achieved by using two vertical reference lines (to separate red and yellow), and one horizontal (for the blue section).
Adding the quadrants
You need:
2 vertical reference lines (same value, to allow both red and yellow)
1 horizontal reference line (for the blue zone)
Hardcoding values works, but it breaks when filters are applied. So instead, we use conditional values with the fx button.
For the horizontal line, we need to calculate the average turnover of all customers in the visual:
For the vertical lines you need 1 and the same measure, I used:
Now, when the visual is filtered, the quadrants adjust dynamically.
I still add the actual lines, but make them 100% transparent. For me, the colored backgrounds are enough to define the borders.
Coloring the quadrants
The colored backgrounds are also set in the reference line formatting options. Initially, the colors are bright, but I added 85% transparency to let them blend.
Blue (horizontal line): position = After
Orange (first vertical): position = After
Red (second vertical): position = Before
Finally, add slicers and other visuals to help your users analyze the scatterplot data in more detail.
Adding the quadrant names
To finish it off, you can also add quadrant names to your scatterplot, like Challengers, Leaders, Nice Players, and Visionaries.
This doesn’t work out of the box, and unfortunately you can’t change the font size ( PBI Core Visuals , Miguel Myers ) but, it’s better than nothing!
We go back to the reference line section and add four new lines, all X-axis constant lines, and all dynamic, so they stay in place while filtering.
We’ll reuse the same measure from the vertical reference lines earlier, but slightly adjust the values to give each label some space from the vertical border.
Just like before, make the lines themselves 100% transparent. Then, go to the data label settings and position the quadrant names as follows:
Top left quadrant → left up
Top right quadrant → right up
Bottom left quadrant → left down
Bottom right quadrant → right down
And that’s it — the quadrant names move along dynamically with your filters!
Coloring the bubbles and quadrant names
To make the scatterplot even more intuitive, I wanted the bubbles to change color depending on the quadrant they are in:
Top left → Blue
Top right → Green
Bottom left → Red
Bottom right → Yellow
The measure below calculates the color for each bubble. It uses the same logic as the reference lines, but keeps the split points constant for all data points by using .
For color-blind accessibility, I’ve added grey quadrant lines in the background. Even if someone cannot distinguish the colors, they can still see exactly in which quadrant each bubble is located.
To make the visual even clearer, I also colored the quadrant names in the same color as the bubbles in that section. This way, users can quickly connect the label with the data points, whether they look at the chart as a whole or focus on a specific area.
Wrapping it up
This scatterplot turned out to be a powerful visual, not just for spotting outliers, but for comparing customers based on multiple dimensions at once. With dynamic quadrants and subtle background colors, it becomes much easier to tell the story behind the numbers.
It's much easier then I thought, so give it a try!!
References
Bas Dohmen: Quadrant Charts in Power BI - But Smarter. Cleaner. Next Level. https://youtu.be/rrhzaUpIAXc?si=EGW16SbdEh4jZ-li
Link to my video: https://youtu.be/8YJW-K5m3cw
I help you build user-friendly Power BI dashboards | Speaker | Microsoft MVP
1wlink to Bas' video: https://youtu.be/rrhzaUpIAXc?si=Vw9esp1acHyeSR7x
I help you build user-friendly Power BI dashboards | Speaker | Microsoft MVP
1wlink to my video: https://youtu.be/8YJW-K5m3cw