quantized colorbar

11 visualizaciones (últimos 30 días)
Jonathan
Jonathan el 7 de Sept. de 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 comentario
Sean de Wolski
Sean de Wolski el 7 de Sept. de 2011
+1, well worded clear and concise question

Iniciar sesión para comentar.

Respuesta aceptada

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

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Color and Styling en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by