Closed
Description
Hi
I was using python3.5.2, numpy 1.14.1, and matplotlib 2.1.2 and encountered a problem when I attempted to show a picture with pyplot. It always gave errors saying 'numpy.ndarray object has no attribute mask', and the related source code seemed in 'matplotlib/image.py'.
I'm not sure whether it was caused by matplotlib or numpy. How do I fix this ?
$ python3
Python 3.5.2 (default, Nov 23 2017, 16:37:01)
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import matplotlib.pyplot as plt
>>> from PIL import Image
>>> img=Image.open('test.jpg')
>>> imgfig = plt.figure()
>>> imgplt = imgfig.add_subplot(111)
>>> imgplt.imshow(img)
<matplotlib.image.AxesImage object at 0x7ff142877438>
>>> plt.show()
Exception in Tkinter callback
Traceback (most recent call last):
File "/usr/lib/python3.5/tkinter/__init__.py", line 1553, in __call__
return self.func(*args)
File "/usr/local/lib/python3.5/dist-packages/matplotlib/backends/backend_tkagg.py", line 233, in resize
self.show()
File "/usr/local/lib/python3.5/dist-packages/matplotlib/backends/backend_tkagg.py", line 304, in draw
FigureCanvasAgg.draw(self)
File "/usr/local/lib/python3.5/dist-packages/matplotlib/backends/backend_agg.py", line 430, in draw
self.figure.draw(self.renderer)
File "/usr/local/lib/python3.5/dist-packages/matplotlib/artist.py", line 55, in draw_wrapper
return draw(artist, renderer, *args, **kwargs)
File "/usr/local/lib/python3.5/dist-packages/matplotlib/figure.py", line 1299, in draw
renderer, self, artists, self.suppressComposite)
File "/usr/local/lib/python3.5/dist-packages/matplotlib/image.py", line 138, in _draw_list_compositing_images
a.draw(renderer)
File "/usr/local/lib/python3.5/dist-packages/matplotlib/artist.py", line 55, in draw_wrapper
return draw(artist, renderer, *args, **kwargs)
File "/usr/local/lib/python3.5/dist-packages/matplotlib/axes/_base.py", line 2437, in draw
mimage._draw_list_compositing_images(renderer, self, artists)
File "/usr/local/lib/python3.5/dist-packages/matplotlib/image.py", line 138, in _draw_list_compositing_images
a.draw(renderer)
File "/usr/local/lib/python3.5/dist-packages/matplotlib/artist.py", line 55, in draw_wrapper
return draw(artist, renderer, *args, **kwargs)
File "/usr/local/lib/python3.5/dist-packages/matplotlib/image.py", line 566, in draw
renderer, renderer.get_image_magnification())
File "/usr/local/lib/python3.5/dist-packages/matplotlib/image.py", line 793, in make_image
unsampled=unsampled)
File "/usr/local/lib/python3.5/dist-packages/matplotlib/image.py", line 430, in _make_image
if A.mask.shape == A.shape:
AttributeError: 'numpy.ndarray' object has no attribute 'mask'
Exception in Tkinter callback
Traceback (most recent call last):
File "/usr/lib/python3.5/tkinter/__init__.py", line 1553, in __call__
return self.func(*args)
File "/usr/lib/python3.5/tkinter/__init__.py", line 599, in callit
func(*args)
File "/usr/local/lib/python3.5/dist-packages/matplotlib/backends/backend_tkagg.py", line 323, in idle_draw
self.draw()
File "/usr/local/lib/python3.5/dist-packages/matplotlib/backends/backend_tkagg.py", line 304, in draw
FigureCanvasAgg.draw(self)
File "/usr/local/lib/python3.5/dist-packages/matplotlib/backends/backend_agg.py", line 430, in draw
self.figure.draw(self.renderer)
File "/usr/local/lib/python3.5/dist-packages/matplotlib/artist.py", line 55, in draw_wrapper
return draw(artist, renderer, *args, **kwargs)
File "/usr/local/lib/python3.5/dist-packages/matplotlib/figure.py", line 1299, in draw
renderer, self, artists, self.suppressComposite)
File "/usr/local/lib/python3.5/dist-packages/matplotlib/image.py", line 138, in _draw_list_compositing_images
a.draw(renderer)
File "/usr/local/lib/python3.5/dist-packages/matplotlib/artist.py", line 55, in draw_wrapper
return draw(artist, renderer, *args, **kwargs)
File "/usr/local/lib/python3.5/dist-packages/matplotlib/axes/_base.py", line 2437, in draw
mimage._draw_list_compositing_images(renderer, self, artists)
File "/usr/local/lib/python3.5/dist-packages/matplotlib/image.py", line 138, in _draw_list_compositing_images
a.draw(renderer)
File "/usr/local/lib/python3.5/dist-packages/matplotlib/artist.py", line 55, in draw_wrapper
return draw(artist, renderer, *args, **kwargs)
File "/usr/local/lib/python3.5/dist-packages/matplotlib/image.py", line 566, in draw
renderer, renderer.get_image_magnification())
File "/usr/local/lib/python3.5/dist-packages/matplotlib/image.py", line 793, in make_image
unsampled=unsampled)
File "/usr/local/lib/python3.5/dist-packages/matplotlib/image.py", line 430, in _make_image
if A.mask.shape == A.shape:
AttributeError: 'numpy.ndarray' object has no attribute 'mask'