MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

# Setting Ticks in a Colorbar

Asked by Natalya on 12 Jan 2013

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!

## Products

No products are associated with this question.

Answer by Jan Simon 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)
```