Join us for an expert-led overview of the tools and concepts you'll need to pass exam PL-300. The first session starts on June 11th. See you there!
Get registeredPower BI is turning 10! Let’s celebrate together with dataviz contests, interactive sessions, and giveaways. Register now.
Hi, I am trying to control individual data labels in the May 2025 version. I am using scatter plots and want to only display certain data labels -- so not ALL or NONE. I know that's already possible obviously. Ideally I could do this through choosing the points via a slicer dynamically, but at this point I am just trying to get it to work at all. I just want to be able to pick which points have a label.
There seems to be no possible way to do this. I have tried many things (forget all that I have tried at this point), but any type of conditional formatting or calculated column does not appear to be able to be used. Seems to be you can only do ALL labels or NO labels. I just feel there has to be some possible way to display SOME, as controling data labels doesn't seem to be an overly complex ask.
Is there something I am missing? Should I try an older version of Power BI? I believe I have seen some videos of this working on older versions -- I know its not the new version because the sections on the app aren't the same. Any suggestions at all? I'm desperate.
Solved! Go to Solution.
Hi @rzx54h,
You are absolutely right on several key points like power BI doesn’t let you add multiple independent series directly to a scatter plot like you would in a line or bar chart, the scatter plot requires a single X and Y axis field, and everything else must be grouped via "Legend" or other fields. You're also correct that calculated columns are static and won’t update based on slicers only measures respond dynamically to slicer input.
That said, you can achieve the two-series overlay effect with data labels shown only on selected points by using a combined table + measures (which is slicer compatible).
First add a column to your table to identify “Label Me” points. You can use this either manually or based on logic (e.g., "Top 5", selected category, etc.). Like "ShowLabel = IF('Table'[Category] IN VALUES('LabelSelector'[Category]), 1, 0)", this assumes you have a slicer table (LabelSelector) that lets users pick which categories to label.
Now create two measures for X and Y axes. One for all points (unlabeled), one for just labeled points.
X_All = MAX('Table'[X])
Y_All = MAX('Table'[Y])
X_Label = IF(MAX('Table'[ShowLabel]) = 1, MAX('Table'[X]), BLANK())
Y_Label = IF(MAX('Table'[ShowLabel]) = 1, MAX('Table'[Y]), BLANK())
Now use a combined table visual trick. Add a scatter plot using X_All and Y_All, and turn off labels. Then overlay a second scatter plot using X_Label and Y_Label, and turn on data labels for this series.
You’ll need to create two separate scatter visuals, then layer them (align carefully using the Format pane -> General -> Position & Size).
Then use a slicer to control labeling. Hook up your slicer to control which values are flagged in the ShowLabel column. Since that drives the X_Label and Y_Label measures, only selected points will appear with labels in the overlay visual.
Try this method as it works well visually and keeps the interaction dynamic slicer selections update the labeled points in real time.
Best Regards,
Hammad.
Hi @rzx54h,
Thanks for reaching out to the Microsoft fabric community forum.
As of the May 2025 version of Power BI, scatter plots still do not support selectively enabling data labels per point through built-in controls or conditional logic. The Data label toggle is at the series level, so it's either all points or none.
Unfortunately, things like conditional formatting, calculated columns/measures, or slicers currently don’t influence individual data label visibility in scatter plots. We know it seems like a simple feature, and many users (like yourself) expect it to be available.
That said, here’s a workaround that might help achieve a similar effect. Create a second series in your scatter plot that only includes the points you want to label now add both series to the scatter plot, one for the full dataset without labels and one for just the selected points with labels turned on. Npw use a calculated table or DAX logic to split the data into these two groups, based on your selection criteria (you could even make this dynamic with a slicer).
This gives you visual control over which points have labels, even if it’s technically through multiple series rather than per-point label toggles.
If you’ve seen older videos with what looks like this functionality, chances are they used this or a similar method, or a custom visual with different capabilities.
I would also take a moment to thank @ToddChitt, for actively participating in the community forum and for the solutions you’ve been sharing in the community forum. Your contributions make a real difference.
If I misunderstand your needs or you still have problems on it, please feel free to let us know.
Best Regards,
Hammad.
Community Support Team
If this post helps then please mark it as a solution, so that other members find it more quickly.
Thank you.
Hi @rzx54h,
As we haven’t heard back from you, so just following up to our previous message. I'd like to confirm if you've successfully resolved this issue or if you need further help.
If yes, you are welcome to share your workaround and mark it as a solution so that other users can benefit as well. If you find a reply particularly helpful to you, you can also mark it as a solution.
If you still have any questions or need more support, please feel free to let us know. We are more than happy to continue to help you.
Thank you for your patience and look forward to hearing from you.
Thanks for the response. I would be perfectly happy with overlaying a second series onto the scatter plot -- which shows the labels -- and then the original series with no labels.
However I'm having trouble doing that. I can't just drag more columns into the "x axis", "y axis", and "legend." It won't let me. I also just tried to use a combined calculated table that combines both series and then plotting that. That doesn't work either. Lastly, Its my understanding you also cannot use a slicer to update calculated columns (data) dynamically. Picking points in the slicer won't update the data.
Hi @rzx54h,
You are absolutely right on several key points like power BI doesn’t let you add multiple independent series directly to a scatter plot like you would in a line or bar chart, the scatter plot requires a single X and Y axis field, and everything else must be grouped via "Legend" or other fields. You're also correct that calculated columns are static and won’t update based on slicers only measures respond dynamically to slicer input.
That said, you can achieve the two-series overlay effect with data labels shown only on selected points by using a combined table + measures (which is slicer compatible).
First add a column to your table to identify “Label Me” points. You can use this either manually or based on logic (e.g., "Top 5", selected category, etc.). Like "ShowLabel = IF('Table'[Category] IN VALUES('LabelSelector'[Category]), 1, 0)", this assumes you have a slicer table (LabelSelector) that lets users pick which categories to label.
Now create two measures for X and Y axes. One for all points (unlabeled), one for just labeled points.
X_All = MAX('Table'[X])
Y_All = MAX('Table'[Y])
X_Label = IF(MAX('Table'[ShowLabel]) = 1, MAX('Table'[X]), BLANK())
Y_Label = IF(MAX('Table'[ShowLabel]) = 1, MAX('Table'[Y]), BLANK())
Now use a combined table visual trick. Add a scatter plot using X_All and Y_All, and turn off labels. Then overlay a second scatter plot using X_Label and Y_Label, and turn on data labels for this series.
You’ll need to create two separate scatter visuals, then layer them (align carefully using the Format pane -> General -> Position & Size).
Then use a slicer to control labeling. Hook up your slicer to control which values are flagged in the ShowLabel column. Since that drives the X_Label and Y_Label measures, only selected points will appear with labels in the overlay visual.
Try this method as it works well visually and keeps the interaction dynamic slicer selections update the labeled points in real time.
Best Regards,
Hammad.
Hi @rzx54h,
I wanted to quickly follow up on your issue. Was your issue resolved in the end?
If yes, it’d be great if you could share a quick update and accept a solution, so other users can benefit from your experience too.
If you’re still stuck, let us know, we’re more than happy to continue helping you through it
Hi @rzx54h,
Hope everything’s going smoothly on your end. We haven’t heard back from you, so I wanted to check if you got the chance to go through the conversation. As you have already resolved the issue, marking the solution or the workaround would be awesome for others who might run into the same thing.
And if you are still stuck? No worries just drop us a message and we can jump back in on the issue.
So I have to ask: WHY do you wish to control which data labels show up? If the range of data values changes due to either changes in the base data, or via some filtering action by the user via a slicer or other visual interaction, wouldn't you want the labels to adjust accordingly?
What's the prolem you are trying to solve?
Proud to be a Super User! | |
Thanks for response. Hope this answers.
The goal is displaying ALL of the points, but only label a SELECT few. Ideally, this could be done with a slicer, or something a viewer could control, but I don't believe that is possible. So doing it by editing the data would be fine if that's not possible. The points that are should be labeled are NOT based off being greater than or less than some numeric value. Its all based on what the user wants to label.
The motivation is there is a lot of data points on the scatter plot and they are clustered together. Labeling them all makes it impossible to read/distinguish labels. Overall, it makes it all look messy and too cluttered. Making font smaller is not an option. I am seeking a way to still label the points I care about, while leaving the rest unlabeled (and still displayed). Hope this answers what you are asking. Please let me know if you need more detail.
This is your chance to engage directly with the engineering team behind Fabric and Power BI. Share your experiences and shape the future.
Check out the June 2025 Power BI update to learn about new features.
User | Count |
---|---|
76 | |
76 | |
57 | |
37 | |
34 |
User | Count |
---|---|
99 | |
56 | |
56 | |
46 | |
40 |