# Colorbar - Ticklabel with variables

18 views (last 30 days)
Mepe on 4 Jun 2020
Commented: Adam Danz on 4 Jun 2020
For a contourf plot I would like to adapt the labeling on the colorbar. I want to see the value '0', the min and max values there. These are available as variables (min,max) and should also be shown in the power representation.
c = colorbar(axes2);
Any idea?
Adam Danz on 4 Jun 2020
Since the colorscale is logarithmic, setting a tick value of 0 will have no effect becaues log10(0) = -inf.

Adam Danz on 4 Jun 2020
If the colorscale in the axes is logarithmic, you can't set the lower axis limit of the colorbar to 0. You could try, and it wouldn't produce an error, but it would produce a warning and the lower limit still would not be zero. The log of 0 is -inf and a colorbar must be finite.
You could create a tick value at the very bottom of the colorbar and you could change its tick label to 0 but it's inaccurate. The actual lower tick value may be very small (ie, 10^-9) but it's not zero and depending on your colorbar range, that could be misleading.
It's better just to let the lower tick value be some small positive number that actually represents the lower limit of the colorbar.
My recommendation is to merely add the lower tick value using,
cb = colorbar(axes1); % Where axes1 is the handle to your axes.
% cb.Limits = [lower, upper]; % Set the colorbar limits if needed
cb.Ticks = unique([cb.Limits(1), P_min, P_max]);
The result would be a colorbar with tick labels that aren't in exponent format.
If you absolutely must use a tick label of 0 at the very bottom of the colorbar, use this line below. However, this could result in a very misleading representation. If you use this, set the cb.Limits(1) value to some very small number.
cb.TickLabels{1} = '0';
Note that your colorbar will still be in log scale!
Adam Danz on 4 Jun 2020