From: Pierre H. <pie...@cr...> - 2014-10-08 13:04:36
|
Hello, I was wondering if the following behavior is a bug of LogLocator class or just a known limitation: (mpl 1.3.1) Input: plt_scale = 'log' #plt_scale = 'linear' fig, (ax1) = plt.subplots(1, 1) ax1.set(yscale=plt_scale) # works for linear scale, not for log: ax1.axes.locator_params('y', nbins=5) Result: AttributeError Traceback (most recent call last) <ipython-input-74-3492af5f93c8> in <module>() 7 8 # works for linear scale, not for log: ----> 9 ax1.axes.locator_params('y', nbins=5) /home/pierre/anaconda/lib/python2.7/site-packages/matplotlib/axes.pyc in locator_params(self, axis, tight, **kwargs) 2305 self.xaxis.get_major_locator().set_params(**kwargs) 2306 if _y: -> 2307 self.yaxis.get_major_locator().set_params(**kwargs) 2308 self.autoscale_view(tight=tight, scalex=_x, scaley=_y) 2309 AttributeError: 'LogLocator' object has no attribute 'set_params' What I get from the traceback is that `locator_params` method forwards the locator attributes (in my case `nbins`) to the actual locator object via its `set_params` method. And this method is missing from LogLocator So my question is: shouldn't all Locator subclasses have a `set_params` method ? best, Pierre (set_params is indeed defined in MaxNLocatorhttps://github.com/matplotlib/matplotlib/blob/master/lib/matplotlib/ticker.py#L1297) |