Get colorbar handle for a particular image

9 visualizzazioni (ultimi 30 giorni)
If I have several images as subplots in a figure, how, given a handle to one of the images, or its axis, do I get the handle to the corresponding colorbar? Colorbars are not axes children, so how do I programmatically determine which belongs to which?

Risposta accettata

Walter Roberson
Walter Roberson il 25 Set 2017
Assuming HG2:
get( ancestor(handle, 'axes'), 'Colorbar')
Or, if you already have the axes in variable ax then
ax.Colorbar
  2 Commenti
Matt J
Matt J il 25 Set 2017
OK, that's easy. But what still puzzles me is that 'Colorbar' appears neither in the properties list nor methods list of axes objects. How did you know that it was there !?

Accedi per commentare.

Più risposte (1)

henk vang
henk vang il 21 Feb 2018
Somehow above answer did not work for me (R2014).
Suppose anyone is still looking: I think what you are looking for (and at least I was looking for) is something like:
if ~isappdata(gca,'ColorbarPeerHandle')
cb = getappdata(gca,'ColorbarPeerHandle');
end
I found a similar pices of code in the subfunction find_legend in the normal function legend. So find that piece of code, and replace ''LegendPeerHandle'' with ''ColorbarPeerHandle'.

Community Treasure Hunt

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

Start Hunting!

Translated by