MATLAB: Contourf and colormap limits

caxiscontourfMATLAB

Hi there!
Let's say I want to plot this:
contourf(peaks,16)
caxis([-2 2])
colorbar
Now I get:
But I want to show black contour lines only in the caxis limits AND also the color levels in the same limits, i.e. 16 color levels in [-2 2], not just 6 like in the picture.
Any ideas? Thanks

Best Answer

The problem is your data goes from [-6.5 8]. The 16 contour lines have been drawn for that. Then when you call caxis, you get rid of any color distinction above 2 or below -2 (>2 all have same color, <-2 all have same color). This does not affect where the actual contor lines go, though. Just the range of values used to assign colors.
Instead, specify (in increasing order) the values you want the contour lines at.
Compare the output of these 3 plots
p = peaks;
figure
contourf(p,16)
colorbar
figure
contourf(p,16)
caxis([-2 2])
colorbar
figure
contourf(p,linspace(-2,2,16))
colorbar
I think the last one does what you want.