I have a basic spread, where x and y are float. But I want to change the color of the marker based on the third categorical variable. The categorical variable is in string form. This seems to be causing the problem.
To use the aperture diaphragm set - here is the code that I think I would use:
x=df['Petal Length']
y=df['Petal Width']
z=df['Species']
plt.scatter(x, y, c=z, s=15, cmap='hot')
plt.xlabel('Petal Width')
plt.ylabel('Petal Length')
plt.title('Petal Width vs Length')
But I get an error: cannot convert string to float: iris-setosa
Should I change the categorical variable to a numeric one before launching, or can I do something with the data in its current format?
thank
: whole trace:
ValueError Traceback (most recent call last)
<ipython-input-47-d67ee3bffc3b> in <module>()
3 y=df['Petal Width']
4 z=df['Species']
6 plt.xlabel('Petal Width')
7 plt.ylabel('Petal Length')
/Users/mpgartland1/anaconda/lib/python2.7/site-packages/matplotlib/pyplot.pyc in scatter(x, y, s, c, marker, cmap, norm, vmin, vmax, alpha, linewidths, verts, hold, **kwargs)
3198 ret = ax.scatter(x, y, s=s, c=c, marker=marker, cmap=cmap, norm=norm,
3199 vmin=vmin, vmax=vmax, alpha=alpha,
-> 3200 linewidths=linewidths, verts=verts, **kwargs)
3201 draw_if_interactive()
3202 finally:
/Users/mpgartland1/anaconda/lib/python2.7/site-packages/matplotlib/axes/_axes.pyc in scatter(self, x, y, s, c, marker, cmap, norm, vmin, vmax, alpha, linewidths, verts, **kwargs)
3605
3606 if c_is_stringy:
-> 3607 colors = mcolors.colorConverter.to_rgba_array(c, alpha)
3608 else:
3609
/Users/mpgartland1/anaconda/lib/python2.7/site-packages/matplotlib/colors.pyc in to_rgba_array(self, c, alpha)
420 result = np.zeros((nc, 4), dtype=np.float)
421 for i, cc in enumerate(c):
423 return result
424
/Users/mpgartland1/anaconda/lib/python2.7/site-packages/matplotlib/colors.pyc in to_rgba(self, arg, alpha)
374 except (TypeError, ValueError) as exc:
375 raise ValueError(
377
378 def to_rgba_array(self, c, alpha=None):
ValueError: to_rgba: Invalid rgba arg "Iris-setosa"
to_rgb: Invalid rgb arg "Iris-setosa"
could not convert string to float: iris-setosa