quantized colorbar

11 visualizzazioni (ultimi 30 giorni)
Jonathan
Jonathan il 7 Set 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 Commento
Sean de Wolski
Sean de Wolski il 7 Set 2011
+1, well worded clear and concise question

Accedi per commentare.

Risposta accettata

Sean de Wolski
Sean de Wolski il 7 Set 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 Commenti
Sean de Wolski
Sean de Wolski il 7 Set 2011
I saw that after I posted, see edit.
Jonathan
Jonathan il 7 Set 2011
Answered both the question I had, and the one I hadn't thought of.
Thank you

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su Color and Styling in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by