MATLAB: How to set the ‘Xticks’ to the bound of the colours in a colorbar

colormapgraphMATLAB

Dear All,
I would like to create a colorbar where the ticks are in the bound of colours. I tried to do it by the following way:
fig1=figure;
axis off
cmap=jet(6);
colormap(cmap)
caxis([1 6])
h=colorbar ('location',' Southoutside', 'XTick',[1 2 3 4 5 6], 'XTickLabel',{'0' '50' '100' '150' '200' '250'})
h.Limits = [1 6]
h.Label.String='P(mm/year)'
set(h, 'FontSize',14, 'FontWeight', 'bold');
But the range of ticks is wrong. I attached the result. How can I create a colorbar where the second tick (50) is between dark and pale blue, the third (100) is between pale blue and turquoise, the fourth (150) is between turquoise and green, the fifth (200) is between green and yellow and the sixth (250) is between yellow and orange?

Best Answer

nTicks = 6;
range = 6 - 1;
inc = range / nTicks;
ticks = ( 0:nTicks ) * inc + 1;
Then set these as XTick