Uh oh!
There was an error while loading.Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork7.9k
Closed
Description
Bug report
Bug summary
I am trying to draw lines that do not get a margin placed around them when the axis is autoscaled. My understanding is that the current way to accomplish that is withArtist.sticky_edges
. But I am finding that while this works within a single Axes, it does not work across multiple Axes
Code for reproduction
This works:
f,ax=plt.subplots()ax.scatter([0,1], [0,0])x1=ax.get_xlim()line,=ax.plot(x1, [0,0])line.sticky_edges.x[:]=x1ax.scatter([0,1], [1,1])x2=ax.get_xlim()line,=ax.plot(x2, [1,1])line.sticky_edges.x[:]=x2assertx1==x2
While this fails:
f, (ax1,ax2)=plt.subplots(1,2,sharex=True,sharey=True)ax1.scatter([0,1], [0,0])x1=ax1.get_xlim()line,=ax1.plot(x1, [0,0])line.sticky_edges.x[:]=x1ax2.scatter([0,1], [1,1])x2=ax2.get_xlim()line,=ax2.plot(x2, [1,1])line.sticky_edges.x[:]=x2assertx1==x2
Is this expected to work? I know there are active changes to the autoscaling behavior; is this a bug that has been fixed (I'm not in a position to test things on a development build right now). Is there a different way to accomplish "ignore an artist when autoscaling"?
Matplotlib version
- Operating system: macos
- Matplotlib version: 3.1.1
- Matplotlib backend (
print(matplotlib.get_backend())
): inline - Python version: 3.7
Metadata
Metadata
Assignees
Labels
No labels