Closed
Description
Bug report
Bug summary
Closing the first of two pyplot figures in TkAgg backend, throws an error.
Code for reproduction
import matplotlib
matplotlib.use("TkAgg")
import matplotlib.pyplot as plt
fig1 = plt.figure()
plt.plot([1,2], 'o')
fig2 = plt.figure()
plt.plot([2,1], 'o')
plt.close(fig1)
plt.show()
Actual outcome
in py2 (2.2.3):
Traceback (most recent call last):
File "D:\xxx\test\closefigureserror.py", line 19, in <module>
plt.show()
File "c:\***\lib\site-packages\matplotlib\pyplot.py", line 253, in show
return _show(*args, **kw)
File "c:\***\lib\site-packages\matplotlib\backend_bases.py", line 208, in show
cls.mainloop()
File "c:\***\lib\site-packages\matplotlib\backends\_backend_tk.py", line 1073, in mainloop
Tk.mainloop()
File "c:\***\lib\lib-tk\Tkinter.py", line 414, in mainloop
_default_root.tk.mainloop(n)
AttributeError: 'NoneType' object has no attribute 'tk'
in py3 (master):
Traceback (most recent call last):
File "D:\xxx\test\closefigureserror.py", line 19, in <module>
plt.show()
File "d:\***\matplotlib\lib\matplotlib\pyplot.py", line 254, in show
return _show(*args, **kw)
File "d:\***\matplotlib\lib\matplotlib\backend_bases.py", line 3275, in show
cls.mainloop()
File "d:\***\matplotlib\lib\matplotlib\backends\_backend_tk.py", line 1040, in mainloop
Tk.mainloop()
File "D:\***\Miniconda3\envs\mplgit\lib\tkinter\__init__.py", line 557, in mainloop
_default_root.tk.mainloop(n)
AttributeError: 'NoneType' object has no attribute 'tk'
The code works fine in Qt4Agg (with py2) or Qt5Agg (with py3)
Expected outcome
No error.
Matplotlib version
- Operating system: Win 8
- Matplotlib version: 2.2.3 / master
- Matplotlib backend (
print(matplotlib.get_backend())
): TkAgg - Python version: 2.7 / 3.6
- Tcl/Tk version: 8.6