Forum Discussion
Control Individual Data Labels in Power BI May 2025 Version?
- Anonymous1 year ago
Hi Anonymous,
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.
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 Anonymous,
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.
- Anonymous1 year agoNot applicable
Hi Anonymous,
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- Anonymous1 year agoNot applicable
Hi Anonymous,
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.