Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 6773228

Browse files
committed
FIX: make scale handling less klunky
1 parent 9250eed commit 6773228

File tree

4 files changed

+8
-17
lines changed

4 files changed

+8
-17
lines changed

lib/matplotlib/axes/_base.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3501,8 +3501,8 @@ def set_xscale(self, value, **kwargs):
35013501
35023502
Parameters
35033503
----------
3504-
value : {"linear", "log", "symlog", "logit", ...}
3505-
The axis scale type to apply.
3504+
value : {"linear", "log", "symlog", "logit", ...} or `.ScaleBase`
3505+
The axis scale type to apply.
35063506
35073507
**kwargs
35083508
Different keyword arguments are accepted, depending on the scale.

lib/matplotlib/axis.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -745,7 +745,10 @@ def get_scale(self):
745745
return self._scale.name
746746

747747
def _set_scale(self, value, **kwargs):
748-
self._scale = mscale.scale_factory(value, self, **kwargs)
748+
if not isinstance(value, mscale.ScaleBase):
749+
self._scale = mscale.scale_factory(value, self, **kwargs)
750+
else:
751+
self._scale = value
749752
self._scale.set_default_locators_and_formatters(self)
750753

751754
self.isDefault_majloc = True

lib/matplotlib/colorbar.py

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -607,12 +607,8 @@ def _reset_locator_formatter_scale(self):
607607
self.minorlocator = None
608608
self.formatter = None
609609
if hasattr(self.norm, '_scale'):
610-
self.ax.set_xscale(self.norm._scale.name,
611-
**self.norm._scale._kwargs)
612-
self.ax.set_yscale(self.norm._scale.name,
613-
**self.norm._scale._kwargs)
614-
self.ax.xaxis._scale = self.norm._scale
615-
self.ax.yaxis._scale = self.norm._scale
610+
self.ax.set_xscale(self.norm._scale)
611+
self.ax.set_yscale(self.norm._scale.name)
616612
self.__scale = self.norm._scale.name
617613
else:
618614
self.ax.set_xscale('linear')

lib/matplotlib/scale.py

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,6 @@ def __init__(self, axis):
5353
be used: a single scale object should be usable by multiple
5454
`~matplotlib.axis.Axis`\es at the same time.
5555
"""
56-
self._kwargs = dict()
5756

5857
def get_transform(self):
5958
"""
@@ -93,7 +92,6 @@ def __init__(self, axis):
9392
# the docstring of Axis.set_scale.
9493
"""
9594
"""
96-
self.kwargs = dict()
9795

9896
def set_default_locators_and_formatters(self, axis):
9997
# docstring inherited
@@ -175,7 +173,6 @@ def forward(values: array-like) -> array-like
175173
forward, inverse = functions
176174
transform = FuncTransform(forward, inverse)
177175
self._transform = transform
178-
self._kwargs = {'functions': functions}
179176

180177
def get_transform(self):
181178
"""Return the `.FuncTransform` associated with this scale."""
@@ -299,7 +296,6 @@ def __init__(*, base=10, subs=None, nonpositive="clip"):
299296
base, subs, nonpositive = __init__(**kwargs)
300297
self._transform = LogTransform(base, nonpositive)
301298
self.subs = subs
302-
self._kwargs = kwargs
303299

304300
base = property(lambda self: self._transform.base)
305301

@@ -353,7 +349,6 @@ def forward(values: array-like) -> array-like
353349
forward, inverse = functions
354350
self.subs = None
355351
self._transform = FuncTransform(forward, inverse) + LogTransform(base)
356-
self._kwargs = {'functions': functions, 'base': base}
357352

358353
@property
359354
def base(self):
@@ -481,7 +476,6 @@ def __init__(*, base=10, linthresh=2, subs=None, linscale=1):
481476
base, linthresh, subs, linscale = __init__(**kwargs)
482477
self._transform = SymmetricalLogTransform(base, linthresh, linscale)
483478
self.subs = subs
484-
self._kwargs = kwargs
485479

486480
base = property(lambda self: self._transform.base)
487481
linthresh = property(lambda self: self._transform.linthresh)
@@ -575,8 +569,6 @@ def __init__(self, axis, nonpositive='mask', *,
575569
self._transform = LogitTransform(nonpositive)
576570
self._use_overline = use_overline
577571
self._one_half = one_half
578-
self._kwargs = {'nonpositive': nonpositive, 'one_half': one_half,
579-
'use_overline': use_overline}
580572

581573
def get_transform(self):
582574
"""Return the `.LogitTransform` associated with this scale."""

0 commit comments

Comments
 (0)