-
-
Notifications
You must be signed in to change notification settings - Fork 7.9k
Description
Bug report
Bug summary
Clicking on the figure options button (only available in the Qt backend) when showing an image does not work anymore. The dialog does not open and the script throws a TypeError.
Code for reproduction
from matplotlib import use
use('Qt5Agg')
import numpy as np
import matplotlib.pyplot as plt
data = np.ones((10,10))
plt.figure()
plt.imshow(data)
plt.show()
Click on figure options button (the second one from the right).
Actual outcome
Figure options dialog is not shown, instead a TypeError is thrown:
Traceback (most recent call last):
File "/usr/lib/python2.7/site-packages/matplotlib/backends/backend_qt5.py", line 681, in edit_parameters
figureoptions.figure_edit(axes, self)
File "/usr/lib/python2.7/site-packages/matplotlib/backends/qt_editor/figureoptions.py", line 168, in figure_edit
+ [(name, name) for name in sorted(image.iterpnames)])]
TypeError: 'instancemethod' object is not iterable
Expected outcome
Figure options dialog is opened and the script does not throw the TypeError. Used to work in matplot 2.0.2.
Matplotlib version
Bug introduced in matplotlib 2.1.0, specifcally this commit:
changes 'iterpnames' from a variable (which is iterable) into a function (which must be called). The callside (figureoptions.py) was not modified accordingly. I guess adding '()' after iterpnames in figureoptions.py line 168 fixes the problem (untested).