How to modify scatter3 default 'mouseover' display

1 view (last 30 days)
Roger Breton
Roger Breton on 16 Dec 2021
Edited: Adam Danz on 28 Dec 2021
Is it possible to change the way the values are displayed in scatter3 when I mouse over a given data points?
I have created this plot, representating a number of CIE Lab data points (see below). The problem is that, ideally, the Labels ought to read Lab (and not XYZ) and the order needs to change from bottom to top. Such that, in the screen capture, I would like to have scatter3 show
L 87.8179
a -79.2574
b 80.987
Roger Breton
Roger Breton on 16 Dec 2021
You are right (and I was wrong) :
L = 80.987
a = -79.2574
b = 87.8179
In other words, X = L and Z = b

Sign in to comment.

Answers (1)

Adam Danz
Adam Danz on 16 Dec 2021
Edited: Adam Danz on 16 Dec 2021
Note that this demo assigns axis labels according your desciption of the desired datatip labels (L,a,b) whereas in your image, the axes appear to be x=b, y=a, z=L, unless the camera view angle or the camera up vector has been changed from default.
% Create scatter, return handle
h = scatter3(rand(1,10),rand(1,10),rand(1,10));
% Redefine labels
h.DataTipTemplate.DataTipRows(1).Label = 'L';
h.DataTipTemplate.DataTipRows(2).Label = 'a';
h.DataTipTemplate.DataTipRows(3).Label = 'b';
% Show datatip
datatip(h, h.XData(1),h.YData(1),h.ZData(1));
Alternatively to avoid mislableing the x|y|z values, you could just use the xlabel, ylabel, zlabel strings,
ax = ancestor(h, 'axes'); % get axis handle
h.DataTipTemplate.DataTipRows(1).Label = ax.XLabel.String;
h.DataTipTemplate.DataTipRows(2).Label = ax.YLabel.String;
h.DataTipTemplate.DataTipRows(3).Label = ax.ZLabel.String;
Adam Danz
Adam Danz on 17 Dec 2021
It's very simple, the data tip labels are in order of X Y Z, or in your plot, b a L.
This is what I've been trying to tell you in almost all of my comments above.

Sign in to comment.




Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!