Skip to content

[ENH]: Be able to ignore specific plots when autoscaling axes #29634

@edbennett

Description

@edbennett

Problem

When building up scatter or error bar plots of data, I frequently want to overlay a fitting function or other set of lines/bands. The latter need to extend for the full width/height of the Axes. If I'm using autoscaling, this doesn't happen because the scale adjusts to leave a margin around the new plots.

Currently, to avoid this, I need to do something like:

xlim, ylim = ax.get_xlim(), ax.get_ylim()
plt.plot(...) # Add lines
ax.set_xlim(xlim)
ax.set_ylim(ylim)

This means I am constrained in how I order my code—I have to have all my data contributing to autoscaling present before I add any fit lines. (This gets more complicated when I am working with multiple Axes with sharex or sharey.)

Example of what I might be looking for:

Image

Example of what I currently get without the workaround above:

Image

Proposed solution

Ideally, have a new keyword argument on plot and friends, something like use_in_autoscale: bool = True. When True, the object generated by plot contributes to the axis limit computations as currently; when False, then it is ignored in these computations.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions