The last line of the "on_changed" method you posted is mappable.set_colorbar(cb, cax)
And "set_colorbar" sets the colorbar attribute. -JJ On Tue, Feb 16, 2010 at 8:46 AM, Nico Schlömer <nico.schloe...@gmail.com> wrote: > Works pretty well. > I've now implemented something like > > ========================== *snip* ========================== > def find_associated_colorbar( obj ): > for child in obj.get_children(): > try: > cbar = child.colorbar > except AttributeError: > continue > if not cbar == None: # really necessary? > # if fetch was successful, cbar contains > # ( reference to colorbar, reference to axis > containing colorbar ) > return cbar[0] > return None > ========================== *snip* ========================== > > How did you find out about the colormap attribute? Was that by taking > a good guess in looking at the source code, or are the public > attributes of a class documented? > > Cheers, > Nico > > > > On Tue, Feb 16, 2010 at 1:18 PM, Jae-Joon Lee <lee.j.j...@gmail.com> wrote: >> set_colorbar sets colorbar attribute. So I guess you can just check if >> Mappable.colorbar is None or not. >> Mappable.colorbar, when set, should be a tuple whose first item is an >> image for colorbar and the second item is an colorbar axes. >> >> Regards, >> >> -JJ >> >> On Tue, Feb 16, 2010 at 5:26 AM, Nico Schlömer <nico.schloe...@gmail.com> >> wrote: >>> Alright, so I dug the sources a bit and found the snippet >>> >>> ========================== *snip* ========================== >>> cb = cbar.Colorbar(cax, mappable, **kw) >>> >>> def on_changed(m): >>> #print 'calling on changed', m.get_cmap().name >>> cb.set_cmap(m.get_cmap()) >>> cb.set_clim(m.get_clim()) >>> cb.update_bruteforce(m) >>> >>> self.cbid = mappable.callbacksSM.connect('changed', on_changed) >>> mappable.set_colorbar(cb, cax) >>> ========================== *snap* ========================== >>> >>> I guess what happens is that a Colorbar is created, and a callback >>> function registered which adapts this very color bar whenever there is >>> a change in color maps/limits. >>> Well. -- I reckon that means that at the moment there's no way to tell >>> if a ScalarMappable has a color bar associated or not. :/ -- At least >>> I don't see how it would be possible to dig up on_changed( ) from the >>> list of callbacks and extract cb from it. >>> >>> Aaand everybody: "Fea-ture request, fea-ture request!" >>> get_colorbar() for ScalarMappables :) >>> >>> Cheers, >>> Nico >>> >>> >>> >>> >>> On Mon, Feb 15, 2010 at 7:58 PM, Nico Schlömer <nico.schloe...@gmail.com> >>> wrote: >>>>> As far as I can see, it is the other way around, i.e., mappables >>>>> (e.g., images) know about the colorbar they are connected. >>>> >>>> Well yeah, that'd be even better. I'll check out the API. -- Hints >>>> would still be appreciated of course. >>>> >>>> --Nico >>>> >>> >> > ------------------------------------------------------------------------------ SOLARIS 10 is the OS for Data Centers - provides features such as DTrace, Predictive Self Healing and Award Winning ZFS. Get Solaris 10 NOW http://p.sf.net/sfu/solaris-dev2dev _______________________________________________ Matplotlib-users mailing list Matplotlib-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/matplotlib-users