What's your favorite colormap?
How can I make a "color map" plot in matlab? - Stack Overflow
You should never use the default colors in Matlab. This is why and what you can do about it.
Thank you. Jet must die.
For those who are interested in using cbrewer.m, here's what I've got in my startup.m:
set(0,'DefaultAxesColorOrder',cbrewer('qual','Set2',8))
set(0,'DefaultLineLineWidth',1.2)
set(0,'DefaultFigureColormap',cbrewer('seq','YlOrRd',64)); Makes looking at plots in Matlab way more tolerable. Substitute YlOrRd with your favorite colorbrewer colormap.
More on reddit.comTwo colormaps on one set of axes
Basically, you can draw the first image, then call 'hold on', and then plot the second. Remember to call 'hold off' when you are done, or subsequent graphics will be drawn in the same axes. Such as:
Z = 10 + peaks;
surf(Z)
hold on
image(Z,'CDataMapping','scaled')
hold off
Videos
By default mesh will color surface values based on the (default) jet colormap (i.e. hot is higher). You can additionally use surf for filled surface patches and set the 'EdgeColor' property to 'None' (so the patch edges are non-visible).
[X,Y] = meshgrid(-8:.5:8);
R = sqrt(X.^2 + Y.^2) + eps;
Z = sin(R)./R;
% surface in 3D
figure;
surf(Z,'EdgeColor','None');

2D map: You can get a 2D map by switching the view property of the figure
% 2D map using view
figure;
surf(Z,'EdgeColor','None');
view(2);

... or treating the values in Z as a matrix, viewing it as a scaled image using imagesc and selecting an appropriate colormap.
% using imagesc to view just Z
figure;
imagesc(Z);
colormap jet;
The color pallet of the map is controlled by colormap(map), where map can be custom or any of the built-in colormaps provided by MATLAB:

Update/Refining the map: Several design options on the map (resolution, smoothing, axis etc.) can be controlled by the regular MATLAB options. As @Floris points out, here is a smoothed, equal-axis, no-axis labels maps, adapted to this example:
figure;
surf(X, Y, Z,'EdgeColor', 'None', 'facecolor', 'interp');
view(2);
axis equal;
axis off;

gevang's answer is great. There's another way as well to do this directly by using pcolor. Code:
[X,Y] = meshgrid(-8:.5:8);
R = sqrt(X.^2 + Y.^2) + eps;
Z = sin(R)./R;
figure;
subplot(1,3,1);
pcolor(X,Y,Z);
subplot(1,3,2);
pcolor(X,Y,Z); shading flat;
subplot(1,3,3);
pcolor(X,Y,Z); shading interp;
Output:

Also, pcolor is flat too, as show here (pcolor is the 2d base; the 3d figure above it is generated using mesh):
