Scatter3 : How do I add 4th variable to Data Tips?
8 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
I have this code going :
h=scatter3(Lab(2,:),Lab(3,:),Lab(1,:),80,RGB,'fill');
xlabel('b*'),ylabel('a*'),zlabel('L*');
title('CIE-L*a*b* coordinates');
axis([min_Lab(3) max_Lab(3) min_Lab(2) max_Lab(2) min_Lab(1) max_Lab(1)]);grid on;hold on;
% draw black lines indicating axis
line([min_Lab(3) max_Lab(3)],[0 0],[0 0],'color',[0 0 0],'lineWidth',linewidth); % Axis L* == a* == 0
line([0 0],[min_Lab(2) max_Lab(2)],[0 0],'color',[0 0 0],'lineWidth',linewidth); % Axis L* == b* == 0
line([0 0],[0 0],[min_Lab(1) max_Lab(1)],'color',[0 0 0],'lineWidth',linewidth); % Axis a* == b* == 0
% Redefine labels
h.DataTipTemplate.DataTipRows(1).Label = 'b';
h.DataTipTemplate.DataTipRows(2).Label = 'a=';
h.DataTipTemplate.DataTipRows(3).Label = 'L=';
h.DataTipTemplate.DataTipRows(3).Label = 'DE76='; <------ 4th Variable here!
% Show datatip
datatip(h, h.XData(1),h.YData(1),h.ZData(1));
I would like to add a fourth variable to the Data Tip as shown below :
Now, somehow (?), I need to pass the DE76 variable as argument to the datatip() function?
The problem, as I see it, is that datatip seem to only take its arguments from the figure handle, h :
datatip(h, h.XData(1),h.YData(1),h.ZData(1));
How could I possibly access my DeltaE variable, which is sitting in a different array :
DE76 =
0.2309 6.5948 6.3132
20.8147 15.0842 2.2396
0.7225 41.3219 55.9979
1.2122 0.9848 4.2285
I was thinking of, perhaps, adding a fourth row to the LabEpson array which would only contains Lab values otherwise. But they wouldn't be part of the "figure" h structure? This is where I'm lost...
I'll try to find the answer on my own...
0 comentarios
Respuestas (1)
Cris LaPierre
el 22 de Dic. de 2021
7 comentarios
Cris LaPierre
el 22 de Dic. de 2021
I don't understand the specifics of the data in your plot, but data tips correspond to actual datapoints in the axes. They should not appear where there is no data. Since DE76 must be the same length as the data on X, Y, and Z, you should always have data for all 4 rows of the data tip.
Your code has changed the datatip template, so that, in this figure, it will always have 4 rows. If there is an (X,Y,Z) datapoint that should not have a DE76 value, you could make that element's value in DE76 be NaN.
Ver también
Categorías
Más información sobre 2-D and 3-D Plots en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!