Skip to content

Axes creation seems to reuse an old one instead of creating a new one #9024

Closed
@omasoud

Description

@omasoud

Bug report

Bug summary

It appears that when plt.axes() is called, if the parameters are identical to a previous call, that old axes is reused instead of creating a new one. I don't know if this is by design or not but it makes the behavior very unexpected.

Code for reproduction

%matplotlib notebook

import matplotlib.pyplot as plt
from matplotlib.widgets import Button
from mpl_toolkits.axes_grid1 import inset_locator

fig = plt.figure()
ax = fig.add_subplot(111)

a1=plt.axes([0,0,1,1], facecolor='yellow')
pos1=inset_locator.InsetPosition(parent=ax,lbwh=[.5,.5,.04,.04])
a1.set_axes_locator(locator=pos1)
b1=Button(a1,'1')

a2=plt.axes([0,0,1,1], facecolor='yellow') 
# the parameters above are identical to those of a1, resulting in this behaving 
# as if one says a2=a1
pos2=inset_locator.InsetPosition(parent=ax,lbwh=[.6,.5,.04,.04])
a2.set_axes_locator(locator=pos2)
b2=Button(a2,'2')

a3=plt.axes([0,0,1,1], facecolor='orange')
# the parameters above are different from previous axes() calls and therefore a new
# axes is created 
pos3=inset_locator.InsetPosition(parent=ax,lbwh=[.7,.5,.04,.04])
a3.set_axes_locator(locator=pos3)
b3=Button(a3,'3')

# The use of buttons is to illustrate a use case. But it is not necessary; the behavior is the 
# same if one comments out the three Button() calls

plt.show()

Actual outcome

Two buttons appear, one with "1" and "2" on top of each other and the other with "3" in it.

Expected outcome

Three buttons appear: "1", "2", and "3" horizontally.

Matplotlib version

  • Operating System: Window 7
  • Matplotlib Version: 2.0.2
  • Python Version: 3.6.1 (Anaconda 4.4.0)
  • Jupyter Version: 5.0.0 (IPython 5.3.0)
  • Other Libraries: No

Metadata

Metadata

Assignees

No one assigned

    Labels

    Release criticalFor bugs that make the library unusable (segfaults, incorrect plots, etc) and major regressions.

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions