@@ -28,8 +28,13 @@ def _add_guide_kw(name, kwargs, **opts):
2828 """
2929 # NOTE: Here we *do not* want to overwrite properties in dictionary. Indicates
3030 # e.g. default locator inferred from levels or default title inferred from metadata.
31- kwargs = kwargs .setdefault (f'{ name } _kw' , {})
32- _update_kw (kwargs , overwrite = False , ** opts )
31+ attr = f'{ name } _kw'
32+ if not opts :
33+ return
34+ if not kwargs .get (attr , None ):
35+ kwargs [attr ] = {} # permit e.g. colorbar_kw=None
36+ guide_kw = kwargs [attr ]
37+ _update_kw (guide_kw , overwrite = False , ** opts )
3338
3439
3540def _cache_guide_kw (obj , name , kwargs ):
@@ -57,11 +62,11 @@ def _flush_guide_kw(obj, name, kwargs):
5762 # colorbar() because locator or formatter axis would get reset. Old solution was
5863 # to delete the _guide_kw but that destroyed default behavior. New solution is
5964 # to keep _guide_kw but have constructor functions return shallow copies.
60- opts = getattr (obj , f'_{ name } _kw' , None )
61- if opts :
62- _update_kw (kwargs , overwrite = False , ** opts )
65+ guide_kw = getattr (obj , f'_{ name } _kw' , None )
66+ if guide_kw :
67+ _update_kw (kwargs , overwrite = False , ** guide_kw )
6368 for key in REMOVE_AFTER_FLUSH :
64- opts .pop (key , None )
69+ guide_kw .pop (key , None )
6570 if isinstance (obj , (tuple , list , np .ndarray )):
6671 for member in obj : # possibly iterate over matplotlib tuple/list subclasses
6772 _flush_guide_kw (member , name , kwargs )
0 commit comments