You can achieve a similar appearance:
Here you can change your code:
s = .05; x = [-2:s:2+s]; y = [-1:s:3+s]; [X, Y] = meshgrid(x, y); Z = (1.-X).^2 + 100.*(YX.*X).^2; minZ = min(Z(:)); % Find minimum value of Z maxZ = max(Z(:)); % Find maximum value of Z C = minZ+(maxZ-minZ).*log(1+Z-minZ)./log(1+maxZ-minZ); % Create a log-scaled % set of color data surf(X, Y, Z, C, 'EdgeColor', 'none'); colormap jet
And here is the result:

How log scaling works ...
Z scaling data, which is used to create C color data, causes the red-orange range of the color map of the jet to be used by more shallow dots, improving the contrast for that particular surface. How this works can be visualized with this simple example:
x = 0:5:100; % Create a range of values from 0 to 100 plot(x, x, 'b-*'); % Plot the values as a straight line (y = x) in blue hold on; % Add to the plot plot(x, 100.*log(1+x)./log(101), 'r-*'); % Plot a log-scaled version of x in red colorbar % Display the default jet color map, for comparison

The source blue dots are evenly distributed over the range of colors that they correspond to in the color bar on the right. When scaling along the scale, these points shift up to the red line. Notice how this leads to a decrease in the density of dots in the lower blue-green range and an increase in the density of dots in the red-orange range.
Getting better contrast overall ...
For the specific surface used here, the log scaling of color data helps to use a larger range of the color map at all points on the surface. Since there are many dots at a lower height (that is, a color index), the logarithm scaling extends to these low values ββto use a wider range of colors in a large surface trough.
However, if you want to improve contrast for an arbitrary surface by improving the use of the range of your color map, scaling the log will not always work. A general solution that may work better is to sort all the height values ββfor your surface in ascending order, and then match them with a linear range that spans your entire color map. Here is what you could get if you did it for your surface:
C = Z; [~, index] = sort(C(:)); C(index) = 1:numel(index); h = surf(X, Y, Z, C, 'EdgeColor', 'none'); colormap jet caxis([1 numel(index)]);

This usually contrasts better than the default coloration C = Z