Change Default White for Zero in Contour Plot

How can I change the default white for zero for the output of a contour plot to a different color?
longitude = [80 82 95]
latitude = [30 32 35]
temp = [0 0 0; 0 0 0; 0 0 0]
contourf(longitude,latitude,temp)
Thanks,
Amanda

 Accepted Answer

That produces no contour plot at all...
C = contourf(longitude,latitude,temp)
Warning: Contour not rendered for constant ZData
> In contourf>parseargs at 455
In contourf at 55
C =
[]
An empty C means nothing was produced. To see that there is nothing there (not just some white contours), do this:
set(gca,'color','k')

More Answers (2)

contourf() does not default to white for 0. contourf() defaults to the first entry in the active colormap for the smallest value in the data. If that smallest value happens to be 0, then you can change the color by changing the colormap. For example,
colormap(hot)

2 Comments

Walter,
But when I have an array of all zeros it is white, but 0.00001 is colored in. How can I get around this?
Amanda
You don't. If your array is constant data, contourf() will not plot it at all. You need to use at least two distinct values.
Are you really trying to plot a contour for an all-zero matrix, or are you trying to plot the z=0 plane to add to an existing contour plot?

Sign in to comment.

Hi,
I have the same problem. I have a matrix which change value, so when it contains non constant value it is okay, but when it contains the same value (1 or 0) I want to have either the color corresponding to 1 or to 0. I know that the problem is that contourf don't calculate it that is why I have nothing, but there is any other function to have what I want ?
Thank you for your help!

1 Comment

image() the constant array if length(unique(TheArray(:)))==1

Sign in to comment.

Categories

Asked:

on 27 Nov 2012

Commented:

on 2 Aug 2016

Community Treasure Hunt

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

Start Hunting!