Closed
Description
Bug report
Plotting with string categorical data fails, if the second call to plt.scatter
contains categories not present in the first call to plt.scatter
Code for reproduction
import matplotlib.pyplot as plt
plt.scatter(["a", "b"], [0,2])
plt.scatter(["a","c"], [1,4])
Actual outcome
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "xxx/python3.6/site-packages/matplotlib/pyplot.py", line 3357, in scatter
edgecolors=edgecolors, data=data, **kwargs)
File "xxx/python3.6/site-packages/matplotlib/__init__.py", line 1710, in inner
return func(ax, *args, **kwargs)
File "xxx/python3.6/site-packages/matplotlib/axes/_axes.py", line 4010, in scatter
x = self.convert_xunits(x)
File "xxx/python3.6/site-packages/matplotlib/artist.py", line 191, in convert_xunits
return ax.xaxis.convert_units(x)
File "xxx/python3.6/site-packages/matplotlib/axis.py", line 1491, in convert_units
ret = self.converter.convert(x, self.units, self)
File "xxx/python3.6/site-packages/matplotlib/category.py", line 53, in convert
return vals.astype('float')
ValueError: could not convert string to float: 'c'
Expected outcome
Figure generated using
plt.plot(["a", "b"], [0,2], "o")
plt.plot(["a", "c"], [1,4], "o")
Using different categories for subsequent calls to plt.plot
works as expected.
Matplotlib version
- Operating system: Fedora
- Matplotlib version: 2.1.0 (installed the manylinux binary wheel via pip)
- Matplotlib backend: TkAgg
- Python version: 3.6.2