I am trying to color different surf pictures. Surf by default colors the surface using the colorbar from minimum of z data up to maximum of z data, using the whole colorbar. I want this to override; color the z data according to the z scale. I have a demo program how I tried to do this:
figure(1);x=1:50;y=1:50;z=rand(50,50);hs=surf(x,y,z,... 'FaceColor','interp',... 'EdgeColor','none',... 'FaceLighting','gouraud');abc=max(abs(zlim));zlim([-abc,abc]);colorbar;mmin=min(min(z));mmax=max(max(z));hs.CData=(z-mmin)*(2*abc)/(mmax-mmin)-abc ;view([1 0 0]);
If I run this program, I have a toolbar, saying that deep blue corresponds to -1, bright yellow corresponds to +1 (that is ok, that is what I wanted). The picture, however, is blue around the minimum value (around zero) and yellow at around +1. I would like to have "green" at zero, as it is on the colorbar.
What I am doing wrong???
Best Answer