Get clim values from colormap and adjust them in real time

34 views (last 30 days)
I am trying to get the cmin and cmax values from a colormap, output them to editfields and let the user change them to update the plot in real time.
s = trisurf(F,P(:,1),P(:,2),P(:,3), Thickness2, 'Parent', app.UIAxes2_5);
c = colorbar(app.UIAxes2_5);
d = colormap(app.UIAxes2_5, jet);
d.clim([cmin cmax]); %Error: unrecognized function or variable 'cmin'
app.MinEditField.Enable = 'on';
app.MinEditField.Value = cmin;
app.MaxEditField.Enable = 'on';
app.MaxEditField.Value = cmax;
I also want the faceAlpha to be 0 for values above cmax and below cmin. But before I reach there, I get an error.

Accepted Answer

Sugar Daddy
Sugar Daddy on 11 Mar 2022
boyaa, let me show you how to do that in a simple matlab figure. then figure it out yourself, how to do it for uiaxes
ax = gca;
mesh(ax,rand(100,100));
colormap(ax,'jet')
[cmin cmax] = deal(ax.CLim);
Now you have current cmin and cmax value.
change their value in Clim
ax.CLim = [0.1 1]
  1 Comment
Pelajar UM
Pelajar UM on 11 Mar 2022
Thanks. This was helpful.
Two problems here:
  1. "deal" doesn't work. cmin and cmax give the same result (min and max together in two columns).
  2. gca doesn't seem to work in app designer
This one did the job:
x = app.UIAxes2_5.CLim;
cmin = x(:,1);
cmax= x(:,2);

Sign in to comment.

More Answers (1)

Simon Chan
Simon Chan on 11 Mar 2022
Use clim(app.UIAxes2_5,[cmin cmax])

Community Treasure Hunt

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

Start Hunting!