MATLAB Answers

title string on vertical colorbar

2,602 views (last 30 days)
Leslie
Leslie on 8 Jul 2011
Edited: Rik on 18 Feb 2020
I want to put a colorbar to the right of a plot; fortunately, MATLAB wants to do that too, so a plain call to colorbar works. However, I'd also like to put a readable title on the colorbar to identify the plotted variable & its units. I tried this
h = colorbar;
set(get(h,'title'),'string','ISCCP Daytime Sc Amount (%)');
MATLAB wants to put this above the colorbar (!) where it runs into the plot title. I can rotate the text
h = colorbar;
set(get(h,'title'),'string','ISCCP Daytime Sc Amount (%)','Rotation',90.0);
but it's still centered up above the vertical colorbar. Trying to calculate a position for it in colorbar-relative coordinates is a real pain. Is there another way to correctly position this metadata alongside the colorbar?

  1 Comment

KEVIIN CHRISTOPHER CORDOVIZ
Simple Solution for this.
h = colorbar;
set(get(h,'label'),'string','ISCCP Daytime Sc Amount (%)');
That way, it will no longer be on top of the colorbar but beside it. :)

Sign in to comment.

Answers (1)

Patrick Kalita
Patrick Kalita on 8 Jul 2011
This is kind of hack, but how about this:
h = colorbar;
ylabel(h, 'foo')

  5 Comments

Show 2 older comments
noone
noone on 4 Apr 2018
This is genius!!!
Roy
Roy on 20 May 2019
This answer is great, but I have one issue.
I have set all labeling of figures to default to using latex as the intepreter. When I follow this example the ylabel does not show up in latex unlesss I do
ylabel(h, 'foo', 'intepreter', 'latex');
I don't want to have to do this manually, so I added
set(groot,'DefaultColorbarYLabelInterpreter','latex')
to my startup.m file. This returns an error
Error using matlab.ui.Root/set
There is no YLabelInterpreter property on the ColorBar class.
How do I set the default then, I know that there is a ColorbarTickLabelInterpreter class.

Sign in to comment.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!