Skip to content

Collections could check x- and y- transforms separately to decide whether to autoscale each direction #15518

Closed
@anntzer

Description

@anntzer

Bug report

Consider the following example

from pylab import *
plt.rcdefaults()
fig, ax = plt.subplots()
ax.plot([1, 3], [5, 7])
ax.vlines(x=[1, 2, 3], ymin=0, ymax=1, transform=ax.get_xaxis_transform())
plt.show()

where I want to use vlines in a manner similar to axvline, i.e. lines spanning the full axes height (but more efficiently than with repeated calls to axvline, as vlines will create a single LineCollection.

test

The autoscaling in the y axis incorrectly goes all the way down to include (0, 1) (coming from the call to vlines), even though these values are in axes coordinates rather than data coordinates.

In effect, I think this is equivalent to the suggestion at #13642 (comment).

Matplotlib version

  • Operating system: linux
  • Matplotlib version: master or 3.1
  • Matplotlib backend (print(matplotlib.get_backend())): any
  • Python version: 37
  • Jupyter version (if applicable): no
  • Other libraries:

Metadata

Metadata

Assignees

No one assigned

    Labels

    status: inactiveMarked by the “Stale” Github Action

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions