MATLAB Answers


Change units of colorbar

Asked by ARP
on 12 Mar 2019
Latest activity Commented on by ARP
on 26 Mar 2019
How can I change the units of the colorbar? The image has units in the logarithm scale. I would like to show the tick labels of the colorbar in the linear scale.
The tick labels in the colorbar display show (-1.5, -1, -0.5, 0, 0.5, 1). I would like to chage them to the linear scale, (0.03,0.10,0.32,1.00,3.16,10.00).
Is thre a way to do that without affecting the interval of the image? I have tried with c. Limits = [10^(-1.6) 10^(1.2)]. It does the job on chaging the scale bar, but also changes the image to the linear scale. I don't mind to write it manually, but how to do it?.
I also tried as in the example colorbar doc, but returns : Index exceeds matrix dimensions.
c('Ticks', [-1.5,-1,-0.5,0,0.5,1],'Ticklabels',[0.03,0.10,0.32,1.00,3.16,10.00]);
Here is the code for the image:
imagesc(x_axis,distance_subset,log10(AV_c_3(1:end,:)),[-1.6 1.2]);
c = colorbar('location', 'SouthOutside');
axis image
xlabel('Lateral length (mm)')
ylabel('Depth (mm)')
Thanks in advance


Sign in to comment.

1 Answer

Answer by Naman Bhaia on 21 Mar 2019

Hello Andres,
What I understood from your question is that you just want to change the X-axis labels. Since you said that you are willing to do it manually, have a look at this link and see if it helps.


on 25 Mar 2019
Hi Naman,
Thanks for the reply. I tryed your suggestion but it applies to the figure, not the colorbar.
I have changed the colorbar units with powerpoint, which is not ideal, but good enough for now.
Some simple things are somehow very difficult in matlab.
Does anybody have other ideas?
Image Analyst
on 26 Mar 2019
The help for colorbar() has an example showing you how to change the tick labels:
on 26 Mar 2019
Yes thanks, that is were I looked in first place.
That is why I tried: ( change colobar units from the logarithm to linear scale)
c = colorbar('location', 'SouthOutside');
c('Ticks', [-1.5,-1,-0.5,0,0.5,1],'Ticklabels',[0.03,0.10,0.32,1.00,3.16,10.00]);
And returns the following error:
Index exceeds matrix dimensions.
Error in comparison_short_vs_long (line 603)
c('Ticks', [-1.5,-1,-0.5,0,0.5,1],'Ticklabels',[0.03,0.10,0.32,1.00,3.16,10.00]);

Sign in to comment.