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.
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?
- Anonymous1 year agoNot applicable
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.