Setting Ticks in a Colorbar

Natalya (view profile)

on 12 Jan 2013
Latest activity Commented on by Nicholas DeWind

Nicholas DeWind (view profile)

on 9 Nov 2015

How do I set the ticks in a color bar to be at specific values?

For example, when I just use the command colorbar('h'), Matlab automatically generates a colorbar with ticks at -10, -5, 0,5,10. I would like the ticks to be at -12 -9,-6,-3,0,3,6,9,12. I tried:

cbh=colorbar('h');

set(cbh,'XTick',[-12:3:12])

This didn't change anything.

set(cbh,'XTickLabel',{'-12','-9','-6','-3','0','3','6','9','12'})

just relabeled the ticks, but did not change their location (i.e. the value of -10 got labeled '-12')

I also tried this:

cbh=colorbar('h');

cy=get(cbh,'XTick');

set(cy,[-12:3:12])

This set ticks at smaller intervals and labeled them from -70 to 10... I do not understand why.

Does anyone have any other suggestions?

Thanks!

Nicholas DeWind

Nicholas DeWind (view profile)

on 9 Nov 2015

Use YTick:

cbh=colorbar('h');

set(cbh,'YTick',[-12:3:12])

Jan Simon (view profile)

on 12 Jan 2013

Matlab's colorbar command creates an image object. See:

```cbh = colorbar('h');
get(get(cbh, 'Children'))
>> ...
CData = [ (1 by 64) double array]
DataMapping = direct
XData = [1.5 64.5]
YData = [0 1]
...
Type = image
```

When you want to change the ticks from -12:3:12, I guess you want 25 different colors in the colorbar.

```AxesH = axes('CLim', [-12, 12]);
cbh = colorbar('peer', AxesH, 'h', ...
'XTickLabel',{'-12','-9','-6','-3','0','3','6','9','12'}, ...
'XTick', -12:3:12)
```