Uh oh!
There was an error while loading.Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork7.9k
Description
Bug report
Bug summary
When a scatter plot is made with data that contains np.nan (NaN), and then a color array is given usingset_color
, the wrong colors get mapped to the data points.
Code for reproduction
frommatplotlibimportpyplotfrommatplotlib.colorsimportNormalizefrommatplotlibimportcmimportnumpyasnpx=np.linspace(0.0,1.0,50)y=np.linspace(0.0,1.0,50)norm=Normalize(0.0,1.0)colormap=cm.ScalarMappable(norm,'gnuplot')colors=colormap.to_rgba(y)# Expected colors with when x and y do not contain any np.nan.# Success.plot=pyplot.scatter(x,y,color=colors)pyplot.show()# Add some nan values.# If the color array is given during the initial creation of the# scatter plot, then everything works as expected.# Success.x[10:40]=np.nanplot=pyplot.scatter(x,y,color=colors)pyplot.show()# Again add some nan values.# If the color array is given as a call to set_color# then the colors no longer match the data.# Failure.x[10:40]=np.nanplot=pyplot.scatter(x,y)plot.set_color(colors)pyplot.show()
Actual outcome
Top: Expected colors with when x and y do not contain any np.nan.
Middle: Add some nan values. If the color array is given during the initial creation of the scatter plot, then everything works as expected.
Bottom: Again add some nan values. If the color array is given as a call toset_color
then the colors no longer match the data.
Expected outcome
The colors corresponding to the data points should be displayed, even when data points contain NaN andset_color
is used.
Matplotlib version
- Operating system: OSX
- Matplotlib version: 2.0.2
- Matplotlib backend: module://ipykernel.pylab.backend_inline & MacOSX
- Python version: 3.6.3
- Jupyter Notebook version: 5.2.0
- Other libraries: None