Borrar filtros
Borrar filtros

Set Colorbar TickLabels and TickMarks

619 visualizaciones (últimos 30 días)
Konstantinos Tsitsilonis
Konstantinos Tsitsilonis el 10 de Ag. de 2017
Comentada: Sebastian Lopez el 5 de Nov. de 2020
Hi all,
I am having trouble setting my colorbar ticklabels as I wish.
Specifically I have 8 points, and have created a colormap such that these 8 points get values from the darkest to the lightest color in the colormap. Similarly, I would like my colorbar's labels to follow the same pattern. Below is the code that I have written:
cmapdef = colormap(winter) ; %Define Colormap
cmap = cmapdef(1:8:end, :) ; %Find Values of colors corresponding to each point plotted
cbh = colorbar('YTickLabel', num2cell(1:8)) ;
However, the resulting colorbar has labels going as follows: 1 2 3 4 5 6 7 8 1 2 3. Instead I would expect the whole span of the color bar to be covered by 1 2 3 4 5 6 7 8.
What am I doing wrong?
Thanks in advance for your responses,
KMT.
  2 comentarios
José-Luis
José-Luis el 10 de Ag. de 2017
Do you mean you want colored text in your colorbar?
Konstantinos Tsitsilonis
Konstantinos Tsitsilonis el 10 de Ag. de 2017
Editada: Konstantinos Tsitsilonis el 10 de Ag. de 2017
Hi Jose,
I would not like to have colored text. It is just that tick labels appear on the color bar on the following order: 1 2 3 4 5 6 7 8 1 2 3, instead of the normal 1 2 3 4 5 6 7 8.
Thanks anyway!

Iniciar sesión para comentar.

Respuesta aceptada

Konstantinos Tsitsilonis
Konstantinos Tsitsilonis el 10 de Ag. de 2017
Editada: Konstantinos Tsitsilonis el 10 de Ag. de 2017
Actually I managed to find a fix.
All the ticks range from 0 to 1, and they should have a tick label associated to them.
Therefore the following code solves the problem:
cmap = colormap(winter(8)) ; %Create Colormap
cbh = colorbar ; %Create Colorbar
cbh.Ticks = linspace(0, 1, 8) ; %Create 8 ticks from zero to 1
cbh.TickLabels = num2cell(1:8) ; %Replace the labels of these 8 ticks with the numbers 1 to 8
  2 comentarios
Peng He
Peng He el 26 de Jun. de 2019
That code only put one tick for me : (
Sebastian Lopez
Sebastian Lopez el 5 de Nov. de 2020
Works perfect! Thank you

Iniciar sesión para comentar.

Más respuestas (1)

José-Luis
José-Luis el 10 de Ag. de 2017
plot(rand(10,1))
cH = colorbar;
cH.TickLabelInterpreter = 'tex';
idx = 955;
for ii = 1:numel(cH.TickLabels)
cH.TickLabels{ii} = [sprintf('\\color[rgb]{%f,%f,%f} ', rand(1,3)), char(idx)];
idx = idx + 1;
end
You'd need to replace the random color with the actual color you want.

Categorías

Más información sobre Colormaps 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