Confirming. Pretty sure this is related to the fact that you are trying to plot an error bar down to log(0). This works if your not trying log(0). For instance:
Looks fine. @M-funk: can you confirm what you are expecting to see? I can't see that there is an action on this issue (perhaps a warning might be suitable when you are at log(0))?
Uhm... No, the errorbar should not be asymmetric when passing in log scale.
Please consider http://faculty.washington.edu/stuve/uwess/log_error.pdf
If I understood correctly the documentation, I would consider nonposx="mask" as the best option of the default behavour.
Activity
M-funk commented on Mar 19, 2012
The error bar does plot, but for some reason, it doesn't show the vertical connecting bar. You'll see if you do this:
fig = plt.figure()
ax = fig.add_subplot(111)
ax.errorbar([1.,2.,3.],[1.,1.,1.],yerr = [0.1,3.,0.4])
ax.set_yscale('log')
fig.savefig('test.png')
something like this outputs:
http://i.imgur.com/LOIi7.png
I think the problem lies in the fact that numpy computes log(1), in any base, equal to 0
pelson commented on Aug 19, 2012
Confirming. Pretty sure this is related to the fact that you are trying to plot an error bar down to log(0). This works if your not trying log(0). For instance:
Looks fine. @M-funk: can you confirm what you are expecting to see? I can't see that there is an action on this issue (perhaps a warning might be suitable when you are at log(0))?
neggert commented on Mar 18, 2013
This can be worked around by doing
ax.set_yscale('log', nonposy="clip")Maybe this should be the default for set_yscale? This seems to cause quite a few problems.
kreczko commented on May 13, 2013
@neggert : Nice workaround.
Wish I had seen it before I wasted 1 hour to try and fix it ;)
From a beginners standpoint I would definitely vote for making it the default (unless there are obvious reasons not to do so).
mdboom commented on May 13, 2013
👍 on making the default clip, with the appropriate API change warning.
SebastianoF commented on Jan 24, 2019
Uhm... No, the errorbar should not be asymmetric when passing in log scale.
Please consider
http://faculty.washington.edu/stuve/uwess/log_error.pdf
If I understood correctly the documentation, I would consider nonposx="mask" as the best option of the default behavour.