These options do not work...
import numpy as np
import matplotlib.pyplot as plt
arr = np.random.random((5,3))
ax = plt.axes()
ax.scatter(arr[:,0],arr[:,1],c=['k','r','g','r','b'])
plt.legend(loc='upper left')
plt.draw()
ax = plt.axes()
h = ax.scatter(arr[:,0],arr[:,1],c=['k','r','g','r','b'])
plt.legend(h, loc='upper left')
plt.draw()
I can assemble use plot instead and write a loop,
colors = ['k','r','g','r','b']
ax = plt.axes()
h = []
for i,c in enumerate(colors):
h.append(ax.plot(arr[i,0],arr[i,1],c+'o'))
plt.legend(colors) ## plt.legend(h,colors) does not work
plt.draw()
When if I pass h
to legend
, it says
warnings.warn("Legend does not support %s
Use proxy artist instead.
http://matplotlib.sourceforge.net/users/legend_guide.html#using-proxy-artist
" % (str(orig_handle),))
But how can I get this to work with scatter without writing a loop?
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…