Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Vote for your favorite vizzies from the Power BI Dataviz World Championship submissions. Vote now!

Reply
YYlee
Helper I
Helper I

Improving Visualization of Multiple Data Points in a Scatter Chart

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 =

VAR MaxPax =
    CALCULATE (
        MAX ( [0PaxCount] ),
        ALLSELECTED ( MVPI )
    )
RETURN
    EXP ( DIVIDE ( [0PaxCount], MaxPax ) * 2 )


YYlee_0-1767860886932.png

 

1 ACCEPTED SOLUTION
YYlee
Helper I
Helper I

Thank you all!! I found the bubble chart under Viz can help on this and I decide to use that! Much appreciate all!!

View solution in original post

10 REPLIES 10
YYlee
Helper I
Helper I

Thank you all!! I found the bubble chart under Viz can help on this and I decide to use that! Much appreciate all!!

AshokKunwar
Continued Contributor
Continued Contributor

Hii @YYlee 

 

If these adjustments make your dots easier to distinguish, please mark this as the "Accepted Solution"!

 

AshokKunwar
Continued Contributor
Continued Contributor

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.

  1. ​Go to the Format pane of your Scatter Chart.
  2. ​Navigate to Markers > Color.
  3. ​Click the fx button (Conditional Formatting).
  4. ​Set Format style to Gradient.
  5. ​Base it on the field [0PaxCount].
  6. ​Set the Minimum to a light color (e.g., Light Blue) and Maximum to a dark color (e.g., Dark Navy).

Step 3: Enable Transparency

​To help with overlapping dots (3 & 4 / 5 & 6), set the Marker Transparency to 25%.

  • Why? When two dots overlap, the intersection will appear darker, immediately signaling that multiple data points are clustered there.

Why this works:

  • Mathematical Contrast: Power scaling forces the larger values to be significantly larger than the median values, making them easier to tell apart.
  • Dual-Encoding: By using both Size and Color to represent the same value, you complement the visual data, making the report more accessible for everyone.

Summary for the Community

​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.

YYlee_0-1767866203212.png

 

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.

AshokKunwar
Continued Contributor
Continued Contributor

Hey 👋 @YYlee 

Here is how you can resolve these specific issues to get your markers to stand out.

1. Why the [fx] Button is Missing

​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:

  • ​Move the field from the Legend bucket into the Details bucket.
  • ​Once the Legend bucket is empty, go to Format pane > Markers > Color.
  • ​The [fx] button will now be visible, allowing you to apply your blue-to-dark-blue gradient based on [0PaxCount].

2. Fixing the "Multiplied by 100" Scaling Issue

​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.

3. Making Overlaps Clearer

​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"!

Ritaf1983
Super User
Super User

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

Regards,
Rita Fainshtein | Microsoft MVP
https://www.linkedin.com/in/rita-fainshtein/
Blog : https://www.madeiradata.com/profile/ritaf/profile

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!

cengizhanarslan
Super User
Super User

You’re hitting two Power BI scatter limits:

  1. Bubble size is scaled non-linearly and then capped (so close values often look the same).

  2. Your current formula EXP([pax]/Max * 2) actually compresses most points unless the ratio is near 1.

1) Use a stronger (and controllable) size scaling

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

 

2) Color by size (discrete “bands”) using conditional formatting

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).

 

3) If outliers exist: cap the max so mid values separate better

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
)

 

_________________________________________________________
If this helped, ✓ Mark as Solution | Kudos appreciated
Connect on LinkedIn
AI-assisted tools are used solely for wording support. All conclusions are independently reviewed.

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.

Helpful resources

Announcements
Power BI DataViz World Championships

Power BI Dataviz World Championships

Vote for your favorite vizzies from the Power BI World Championship submissions!

Sticker Challenge 2026 Carousel

Join our Community Sticker Challenge 2026

If you love stickers, then you will definitely want to check out our Community Sticker Challenge!

January Power BI Update Carousel

Power BI Monthly Update - January 2026

Check out the January 2026 Power BI update to learn about new features.

FabCon Atlanta 2026 carousel

FabCon Atlanta 2026

Join us at FabCon Atlanta, March 16-20, for the ultimate Fabric, Power BI, AI and SQL community-led event. Save $200 with code FABCOMM.