quantized colorbar

11 vues (au cours des 30 derniers jours)
Jonathan
Jonathan le 7 Sep 2011
I would like a colorbar that only shows the colors of numbers that exist in the dataset.
Example:
x = -2*pi:0.01:2*pi;
y = x;
[X Y] = meshgrid(x,y);
Z = sign(round(cos(X).*cos(Y)));
imagesc(x,y,Z);colorbar;
There are only 3 possible numbers in the output matrix. Unfortunately, the colorbar will still show a full gradient.
I would appreciate a method for generating a colorbar with only the levels that are present.
  1 commentaire
Sean de Wolski
Sean de Wolski le 7 Sep 2011
+1, well worded clear and concise question

Connectez-vous pour commenter.

Réponse acceptée

Sean de Wolski
Sean de Wolski le 7 Sep 2011
X = sign(round((rand(10)-.5)*2));
imagesc(X);
un_X = unique(X);
colormap(cool(length(un_X)));
H = colorbar;
set(H,'ytick',un_X);
Manually set the colormap and the colorbar's ytick to the unique values of X.
  3 commentaires
Sean de Wolski
Sean de Wolski le 7 Sep 2011
I saw that after I posted, see edit.
Jonathan
Jonathan le 7 Sep 2011
Answered both the question I had, and the one I hadn't thought of.
Thank you

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Color and Styling 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