title string on vertical colorbar

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 commentaire

KEVIIN CHRISTOPHER CORDOVIZ
Modifié(e) : Rik le 18 Fév 2020
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. :)

Connectez-vous pour commenter.

Réponses (2)

Patrick Kalita
Patrick Kalita le 8 Juil 2011

49 votes

This is kind of hack, but how about this:
h = colorbar;
ylabel(h, 'foo')

6 commentaires

Igor
Igor le 9 Nov 2012
simplicity is the key of prosperity! perfect answer. good job Patrick
Suene
Suene le 18 Nov 2015
great
noone
noone le 4 Avr 2018
This is genius!!!
Roy Goodman
Roy Goodman le 20 Mai 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.
Daniyal Altaf Baloch
Daniyal Altaf Baloch le 7 Fév 2020
You saved us. Good answer
Brice Arthur Azangue
Brice Arthur Azangue le 12 Juin 2023
thanks for this code

Connectez-vous pour commenter.

Sara Soufsaf
Sara Soufsaf le 9 Avr 2022
To update Patrick Kalita's answer
h = colorbar;
title(h, 'foo')

Catégories

Produits

Community Treasure Hunt

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

Start Hunting!

Translated by