Get colorbar handle for a particular image

9 次查看(过去 30 天)
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?

采纳的回答

Walter Roberson
Walter Roberson 2017-9-25
Assuming HG2:
get( ancestor(handle, 'axes'), 'Colorbar')
Or, if you already have the axes in variable ax then
ax.Colorbar
  2 个评论
Matt J
Matt J 2017-9-25
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 !?

请先登录,再进行评论。

更多回答(1 个)

henk vang
henk vang 2018-2-21
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