FazBrowse GitHub Viewer | Trending |
URL:
| Home
Tools: [Download Repo ZIP]   [Original HTTPS Page]

Problem with errorbar in log scale · Issue #163 · matplotlib/matplotlib · GitHub

Repository navigation

Problem with errorbar in log scale #163

Closed

Description

Original report at SourceForge, opened Wed Sep 1 13:52:54 2010

When using log scale, if the error is larger than flux, the error bar does not plot at all:

import matplotlib as mpl
mpl.use('Agg')
import matplotlib.pyplot as plt

fig = plt.figure()
ax = fig.add_subplot(1, 1, 1)
ax.errorbar([1.],[1.],yerr=[2.])
ax.set_yscale('log')
fig.savefig('test.png')

However, I think it would make more correct to plot the line for the errorbar, and to make it go down to -infinity.

Activity

  1. 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

  2. pelson commented on Aug 19, 2012

    Member

    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:

    ax.errorbar([10, 11, 12], [8, 9, 10], yerr=[0.5, 0.7, 0.9])
    

    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))?

  3. neggert commented on Mar 18, 2013

    Contributor

    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.

  4. 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).

  5. mdboom commented on May 13, 2013

    Member

    👍 on making the default clip, with the appropriate API change warning.

  6. 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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions


      Back | FazBrowse Home | New Git URL