Change Default White for Zero in Contour Plot

15 vues (au cours des 30 derniers jours)
Amanda
Amanda le 27 Nov 2012
Commenté : Walter Roberson le 2 Août 2016
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

Réponse acceptée

Matt Fig
Matt Fig le 27 Nov 2012
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')
  1 commentaire
Amanda
Amanda le 27 Nov 2012
Thanks. You have always helped me out.

Connectez-vous pour commenter.

Plus de réponses (2)

Walter Roberson
Walter Roberson le 27 Nov 2012
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 commentaires
Amanda
Amanda le 27 Nov 2012
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
Walter Roberson
Walter Roberson le 27 Nov 2012
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?

Connectez-vous pour commenter.


houda
houda le 2 Août 2016
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 commentaire
Walter Roberson
Walter Roberson le 2 Août 2016
image() the constant array if length(unique(TheArray(:)))==1

Connectez-vous pour commenter.

Catégories

En savoir plus sur Contour Plots dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by