@@ -28,8 +28,13 @@ def _add_guide_kw(name, kwargs, **opts):
28
28
"""
29
29
# NOTE: Here we *do not* want to overwrite properties in dictionary. Indicates
30
30
# 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 )
33
38
34
39
35
40
def _cache_guide_kw (obj , name , kwargs ):
@@ -57,11 +62,11 @@ def _flush_guide_kw(obj, name, kwargs):
57
62
# colorbar() because locator or formatter axis would get reset. Old solution was
58
63
# to delete the _guide_kw but that destroyed default behavior. New solution is
59
64
# 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 )
63
68
for key in REMOVE_AFTER_FLUSH :
64
- opts .pop (key , None )
69
+ guide_kw .pop (key , None )
65
70
if isinstance (obj , (tuple , list , np .ndarray )):
66
71
for member in obj : # possibly iterate over matplotlib tuple/list subclasses
67
72
_flush_guide_kw (member , name , kwargs )
0 commit comments