I'm getting what looks like a label positioning error when setting a label for a logit scale axis using matplotlib, here's my example:
import matplotlib.pyplot as plt; from matplotlib.ticker import FormatStrFormatter; x = [1,2,3,4,5]; y = [0.1,0.2,0.3,0.4,0.5]; fig,ax = plt.subplots(); ax.set_ylim([0.005,0.99]); ax.set_yscale('logit'); ax.yaxis.set_minor_formatter(FormatStrFormatter("")); ax.set_xlabel("X axis"); ax.set_ylabel("Y axis"); #set y axis label (logit scale) ax.plot(x,y); plt.show(); plt.close();
Here's the trace:
Traceback (most recent call last): File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/matplotlib/backends/backend_macosx.py", line 136, in _draw self.figure.draw(renderer) File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/matplotlib/artist.py", line 63, in draw_wrapper draw(artist, renderer, *args, **kwargs) File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/matplotlib/figure.py", line 1143, in draw renderer, self, dsu, self.suppressComposite) File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/matplotlib/image.py", line 139, in _draw_list_compositing_images a.draw(renderer) File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/matplotlib/artist.py", line 63, in draw_wrapper draw(artist, renderer, *args, **kwargs) File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/matplotlib/axes/_base.py", line 2409, in draw mimage._draw_list_compositing_images(renderer, self, dsu) File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/matplotlib/image.py", line 139, in _draw_list_compositing_images a.draw(renderer) File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/matplotlib/artist.py", line 63, in draw_wrapper draw(artist, renderer, *args, **kwargs) File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/matplotlib/axis.py", line 1150, in draw self.label.draw(renderer) File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/matplotlib/artist.py", line 63, in draw_wrapper draw(artist, renderer, *args, **kwargs) File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/matplotlib/text.py", line 762, in draw raise ValueError("posx and posy should be finite values") ValueError: posx and posy should be finite values
Works great when I omit
ax.set_ylabel("Y axis"); #set y axis label (logit scale)
It doesn't seem to matter of the label is set before or after the axis scale. Anyone know how to work around this?