Join us at FabCon Atlanta from March 16 - 20, 2026, for the ultimate Fabric, Power BI, AI and SQL community-led event. Save $200 with code FABCOMM.
Register now!Vote for your favorite vizzies from the Power BI Dataviz World Championship submissions. Vote now!
Hi All,
I used a scatter chart to create this, but the sizes of dots 3 & 4 / 5 & 6 look very similar and are difficult to distinguish visually. I tried adjusting the dot sizes using different DAX, but outcome was the same.
Is there a way to make the differences in dot size more pronounced, or to automatically apply different colors based on dot size (for example 1= lighter blue, 2 = ...., 100 = darkest), or any ideas to make the whole statement more clear?
Value : AngleDeg
X Axis : 0X =MAX ( MVPI[Radius] ) * COS ( RADIANS ( MAX ( MVPI[AngleDeg] ) ) )
Y-Axis : 0Y =MAX ( MVPI[Radius] ) * SIN ( RADIANS ( MAX ( MVPI[AngleDeg] ) ) )
Legend : Categories into 1,21,3,4 according to the individual marking
Size : 0Dot Size =
Solved! Go to Solution.
Thank you all!! I found the bubble chart under Viz can help on this and I decide to use that! Much appreciate all!!
Thank you all!! I found the bubble chart under Viz can help on this and I decide to use that! Much appreciate all!!
Hii @YYlee
If these adjustments make your dots easier to distinguish, please mark this as the "Accepted Solution"!
Hii @YYlee
Instead of exponential growth, we will usePower Scaling to create a steeper visual gap and Conditional Formatting to add a second layer of identification.
Step 1: Update the Size Measure
Replace your EXP logic with a POWER function. Cubing the value (x^3) creates a much more dramatic size difference than EXP for normalized values.
0Dot Size Adjusted =
VAR MaxPax = CALCULATE ( MAX ( [0PaxCount] ), ALLSELECTED ( MVPI ) )
VAR NormalizedValue = DIVIDE ( [0PaxCount], MaxPax )
RETURN
// Raising to the power of 3 creates a high-contrast visual gap
POWER(NormalizedValue, 3) * 100
Step 2: Apply a Color Gradient (Heatmap Effect)
Since eyes detect color changes faster than slight size changes, apply a gradient based on the count.
Step 3: Enable Transparency
To help with overlapping dots (3 & 4 / 5 & 6), set the Marker Transparency to 25%.
If your scatter chart bubbles look too similar, try moving to a POWER function and always use a Color Gradient to make the "clusters" stand out.
If these adjustments make your dots easier to distinguish, please mark this as the "Accepted Solution"!
Dear Ashok,
Thank you for your help!!
1. I tried the size measurement before, but unfortunately it doesn't work. If one dot is multiplied by 100, the rest are multiplied by 100 too, so the outcome is the same.
2. My marker colour does not appear [fx]. I am not sure why.
Hi @YYlee,
Thank you @cengizhanarslan @Ritaf1983, for you insights,
Have you had a chance to review the solution shared by the @AshokKunwar? If the issue still persists, please feel free to reply so we can assist you further.
In addition, you may find the following Microsoft documentation helpful, as it explains scatter, bubble, and dot plot chart behavior and limitations in Power BI:
Scatter, Bubble, and Dot Plot Charts in Power BI - Power BI | Microsoft Learn
Thank you.
Hey 👋 @YYlee
Here is how you can resolve these specific issues to get your markers to stand out.
In Power BI, when you have a field in the Legend bucket of a scatter chart, the conditional formatting [fx] button disappears. This is because the Legend is already "reserving" the color property to differentiate categories.
The Fix:
You noted that multiplying by 100 made all dots larger without changing the relative difference. This happens because Power BI automatically scales bubbles based on the available space. If your DAX returns values like 10, 20, and 100, Power BI might still render them similarly if the Bubble Size range is too narrow.
The Fix:
Instead of just multiplying by 100, you need to use a nonlinear power function to force a larger mathematical gap between small and large values, then adjust the visual slider.
Updated DAX:
0Dot Size Contrast =
VAR MaxPax = CALCULATE ( MAX ( [0PaxCount] ), ALLSELECTED ( MVPI ) )
VAR NormalizedValue = DIVIDE ( [0PaxCount], MaxPax )
RETURN
// Cubing the normalized value (x^3) creates
// much higher contrast than linear or EXP scaling.
POWER(NormalizedValue, 3)
Visual Adjustment:
After applying the measure, go to Format pane > Markers > Shape and look for the Size slider. Move the slider to increase the maximum bubble size. Because you used POWER(x, 3), a dot at 50% of the max value will now appear 8 times smaller than the max dot, rather than just half the size.
To address dots 3 & 4 or 5 & 6 appearing identical, set the Transparency to 25-30% under the Marker settings.
Why? If two dots are nearly the same size and color, transparency creates a "darkening" effect where they overlap, making it immediately obvious that multiple data points are occupying that space.
If these adjustments make your dots easier to distinguish, please mark this as the "Accepted Solution"!
Hi @YYlee
In Power BI’s native scatter chart there is no discrete control over bubble size per category. Bubble size is always treated as a continuous, normalized scale, with internal min/max limits applied by the visual itself. As a result, even when using nonlinear DAX transformations (EXP, LOG, POWER, etc.), small-to-medium differences tend to be visually compressed and remain hard to distinguish.
This is therefore not a DAX limitation but a visualization constraint of the scatter chart.
More importantly, from a data visualization perspective, scatter charts with varying bubble sizes are generally not suitable for comparing magnitudes. Human perception is poor at comparing areas, especially circular areas, and even more so when values are close (e.g. 3 vs. 4 or 5 vs. 6). This makes precise or even relative comparison unreliable, regardless of how the size is calculated.
If the goal is to compare similarity or differences between categories, a table combined with bar visuals (e.g. data bars, column or bar charts) will usually be far more effective and interpretable.
If the goal is instead to analyze spatial patterns, clustering, or directional behavior, a scatter chart can still be appropriate, but bubble size should be used very cautiously (or reduced to a very coarse scale), and color or faceting may communicate the message more clearly.
Clarifying the analytical goal—what the viewer is expected to understand or decide based on the chart—would make it easier to recommend a more effective visual approach.
If this post helps, then please consider Accepting it as the solution to help the other members find it more quickly
Dear Rita,
Thank you for your explanation! I understand what you mean, but the team want to try this new trend and I would like to give it a go! Thank you again!
You’re hitting two Power BI scatter limits:
Bubble size is scaled non-linearly and then capped (so close values often look the same).
Your current formula EXP([pax]/Max * 2) actually compresses most points unless the ratio is near 1.
A good pattern is normalize → power curve → scale to a range:
Dot Size =
VAR v = [0PaxCount]
VAR vMin = CALCULATE( MIN([0PaxCount]), ALLSELECTED(MVPI) )
VAR vMax = CALCULATE( MAX([0PaxCount]), ALLSELECTED(MVPI) )
VAR n = DIVIDE( v - vMin, vMax - vMin ) -- 0..1
VAR curved = POWER( n, 0.35 ) -- <1 expands differences
RETURN
1 + 99 * curved -- force range 1..100
Power BI scatter can’t do a continuous gradient color by a measure directly like some visuals, but you can do it with binning:
Create a band measure/column:
Size Band =
VAR n =
DIVIDE(
[0PaxCount],
CALCULATE( MAX([0PaxCount]), ALLSELECTED(MVPI) )
)
RETURN
SWITCH(
TRUE(),
n < 0.2, "1",
n < 0.4, "2",
n < 0.6, "3",
n < 0.8, "4",
"5"
)Then put Size Band on Legend and assign colors (light → dark).
Outliers make all other bubbles look similar.
If you can add a helper measure, cap vMax using a percentile (approximation approach):
Create a “Max excluding top x%” value in Power Query is best, but if you must stay DAX-only, easiest is: use a fixed cap (business-defined), or use a measure like Median/Avg based cap.
Example with a business cap:
VAR vMax = MIN(
CALCULATE( MAX([0PaxCount]), ALLSELECTED(MVPI) ),
5000 -- cap
)
Dear Ceng,
Thank you for your help! If I remove the radius from the legend, my four ranks will become one, which I do not want.
Vote for your favorite vizzies from the Power BI World Championship submissions!
If you love stickers, then you will definitely want to check out our Community Sticker Challenge!
Check out the January 2026 Power BI update to learn about new features.
| User | Count |
|---|---|
| 55 | |
| 52 | |
| 41 | |
| 16 | |
| 16 |
| User | Count |
|---|---|
| 107 | |
| 103 | |
| 40 | |
| 33 | |
| 25 |