Uh oh!
There was an error while loading.Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork8.1k
Closed
Milestone
Description
Bug report
Bug summary
If all values passed as colors are "bad" (np.nan), a warning is thrown from numpy about converting masked values to null. If some of the values are "bad", this does not happen.
Code for reproduction
importnumpyasnp,matplotlib.pyplotasplt
This does not warn:
c=np.full(10,np.nan)c[0]=1.plt.scatter(np.ones(10),np.ones(10),c=c)plt.show()
This does:
plt.scatter(np.ones(10),np.ones(10),c=np.full(10,np.nan))plt.show()
<__array_function__ internals>:5: UserWarning: Warning: converting a masked element to nan./usr/local/lib/python3.8/site-packages/numpy/core/_asarray.py:85: UserWarning: Warning: converting a masked element to nan. return array(a, dtype, copy=False, order=order)
This is difficult to hide since since the warning is not thrown when the figure is being constructed, but when it is shown. Here's a full traceback to show this:
Full traceback
File"<stdin>", line1, in<module> File"/usr/local/lib/python3.8/site-packages/matplotlib/pyplot.py", line337, inshowreturn _backend_mod.show(*args,**kwargs) File"/usr/local/lib/python3.8/site-packages/matplotlib/backend_bases.py", line3544, inshowcls.mainloop() File"/usr/local/lib/python3.8/site-packages/matplotlib/backends/backend_macosx.py", line171, inmainloop _macosx.show() File"/usr/local/lib/python3.8/site-packages/matplotlib/backends/backend_macosx.py", line61, in_drawself.figure.draw(renderer) File"/usr/local/lib/python3.8/site-packages/matplotlib/artist.py", line41, indraw_wrapperreturn draw(artist, renderer,*args,**kwargs) File"/usr/local/lib/python3.8/site-packages/matplotlib/figure.py", line1863, indraw mimage._draw_list_compositing_images( File"/usr/local/lib/python3.8/site-packages/matplotlib/image.py", line131, in_draw_list_compositing_images a.draw(renderer) File"/usr/local/lib/python3.8/site-packages/matplotlib/artist.py", line41, indraw_wrapperreturn draw(artist, renderer,*args,**kwargs) File"/usr/local/lib/python3.8/site-packages/matplotlib/cbook/deprecation.py", line411, inwrapperreturn func(*inner_args,**inner_kwargs) File"/usr/local/lib/python3.8/site-packages/matplotlib/axes/_base.py", line2748, indraw mimage._draw_list_compositing_images(renderer,self, artists) File"/usr/local/lib/python3.8/site-packages/matplotlib/image.py", line131, in_draw_list_compositing_images a.draw(renderer) File"/usr/local/lib/python3.8/site-packages/matplotlib/artist.py", line41, indraw_wrapperreturn draw(artist, renderer,*args,**kwargs) File"/usr/local/lib/python3.8/site-packages/matplotlib/collections.py", line931, indraw Collection.draw(self, renderer) File"/usr/local/lib/python3.8/site-packages/matplotlib/artist.py", line41, indraw_wrapperreturn draw(artist, renderer,*args,**kwargs) File"/usr/local/lib/python3.8/site-packages/matplotlib/collections.py", line346, indrawself.update_scalarmappable() File"/usr/local/lib/python3.8/site-packages/matplotlib/collections.py", line855, inupdate_scalarmappableself._facecolors=self.to_rgba(self._A,self._alpha) File"/usr/local/lib/python3.8/site-packages/matplotlib/cm.py", line332, into_rgba x=self.norm(x) File"/usr/local/lib/python3.8/site-packages/matplotlib/colors.py", line1048, in__call__ (vmin,), _=self.process_value(self.vmin) File"/usr/local/lib/python3.8/site-packages/matplotlib/colors.py", line1012, inprocess_value dtype= np.min_scalar_type(value) File"<__array_function__ internals>", line5, inmin_scalar_type File"/usr/local/lib/python3.8/site-packages/numpy/ma/core.py", line4331, in__float__ warnings.warn("Warning: converting a masked element to nan.",stacklevel=2) File"/usr/local/Cellar/python@3.8/3.8.5/Frameworks/Python.framework/Versions/3.8/lib/python3.8/warnings.py", line109, in_showwarnmsg sw(msg.message, msg.category, msg.filename, msg.lineno, File"<stdin>", line3, inwarn_with_traceback<__array_function__ internals>:5: UserWarning: Warning: converting a masked element to nan. File"<stdin>", line1, in<module> File"/usr/local/lib/python3.8/site-packages/matplotlib/pyplot.py", line337, inshowreturn _backend_mod.show(*args,**kwargs) File"/usr/local/lib/python3.8/site-packages/matplotlib/backend_bases.py", line3544, inshowcls.mainloop() File"/usr/local/lib/python3.8/site-packages/matplotlib/backends/backend_macosx.py", line171, inmainloop _macosx.show() File"/usr/local/lib/python3.8/site-packages/matplotlib/backends/backend_macosx.py", line61, in_drawself.figure.draw(renderer) File"/usr/local/lib/python3.8/site-packages/matplotlib/artist.py", line41, indraw_wrapperreturn draw(artist, renderer,*args,**kwargs) File"/usr/local/lib/python3.8/site-packages/matplotlib/figure.py", line1863, indraw mimage._draw_list_compositing_images( File"/usr/local/lib/python3.8/site-packages/matplotlib/image.py", line131, in_draw_list_compositing_images a.draw(renderer) File"/usr/local/lib/python3.8/site-packages/matplotlib/artist.py", line41, indraw_wrapperreturn draw(artist, renderer,*args,**kwargs) File"/usr/local/lib/python3.8/site-packages/matplotlib/cbook/deprecation.py", line411, inwrapperreturn func(*inner_args,**inner_kwargs) File"/usr/local/lib/python3.8/site-packages/matplotlib/axes/_base.py", line2748, indraw mimage._draw_list_compositing_images(renderer,self, artists) File"/usr/local/lib/python3.8/site-packages/matplotlib/image.py", line131, in_draw_list_compositing_images a.draw(renderer) File"/usr/local/lib/python3.8/site-packages/matplotlib/artist.py", line41, indraw_wrapperreturn draw(artist, renderer,*args,**kwargs) File"/usr/local/lib/python3.8/site-packages/matplotlib/collections.py", line931, indraw Collection.draw(self, renderer) File"/usr/local/lib/python3.8/site-packages/matplotlib/artist.py", line41, indraw_wrapperreturn draw(artist, renderer,*args,**kwargs) File"/usr/local/lib/python3.8/site-packages/matplotlib/collections.py", line346, indrawself.update_scalarmappable() File"/usr/local/lib/python3.8/site-packages/matplotlib/collections.py", line855, inupdate_scalarmappableself._facecolors=self.to_rgba(self._A,self._alpha) File"/usr/local/lib/python3.8/site-packages/matplotlib/cm.py", line332, into_rgba x=self.norm(x) File"/usr/local/lib/python3.8/site-packages/matplotlib/colors.py", line1048, in__call__ (vmin,), _=self.process_value(self.vmin) File"/usr/local/lib/python3.8/site-packages/matplotlib/colors.py", line1019, inprocess_value data= np.asarray(value) File"/usr/local/lib/python3.8/site-packages/numpy/core/_asarray.py", line85, inasarrayreturn array(a, dtype,copy=False,order=order) File"/usr/local/lib/python3.8/site-packages/numpy/ma/core.py", line4331, in__float__ warnings.warn("Warning: converting a masked element to nan.",stacklevel=2) File"/usr/local/Cellar/python@3.8/3.8.5/Frameworks/Python.framework/Versions/3.8/lib/python3.8/warnings.py", line109, in_showwarnmsg sw(msg.message, msg.category, msg.filename, msg.lineno, File"<stdin>", line3, inwarn_with_traceback/usr/local/lib/python3.8/site-packages/numpy/core/_asarray.py:85: UserWarning: Warning: converting a masked element to nan. return array(a, dtype, copy=False, order=order)
Expected outcome
I wouldn't expect the second to warn if the first doesn't.
Matplotlib version
- Operating system: macOS
- Matplotlib version: 3.3.1
- Matplotlib backend (
print(matplotlib.get_backend())): MacOSX and module://ipykernel.pylab.backend_inline - Python version: 3.8.5
- Jupyter version (if applicable): Replicates in python repl, but also was happening in ipython and jupyter lab
- Other libraries:
Installed with pip
Metadata
Metadata
Assignees
Labels
No labels