我有一个包含 6 个不同子图的图。我遍历一个循环来制作每个子图,我也想在这个时候为每个子图添加图例。所以这是一个简单的例子:
matrixSol = scipy.random.random((6,6,4))
print matrixSol
mylegend = ['10 Million','15 Million','1 Million','20 Million','25 Million','5 Million']
for k in range(6):
print k
xs = matrixSol[k,:,0]
ys = matrixSol[k,:,1]
zs = matrixSol[k,:,3]
plt.subplot(2,3,k+1)
plt.plot(ys, zs,'o', c=color[k], markersize=10)#marker = styles[k])
#print mylegend[k]
plt.legend((mylegend[k]),loc=2)
plt.xlabel('X')
plt.ylabel('Y (%)')
plt.show()
问题是我得到的图例只选择列表中每个成员的第一个符号,请参见附图。 我的代码有什么问题???? 就是这么简单!非常感谢!任何帮助将不胜感激!
请您参考如下方法:
使用:
plt.plot(ys, zs,'o', c=color[k], label=mylegend[k], markersize=10)
plt.legend(loc=2)
或者,Chris Redford 已经指出的解决方案也有效:
plt.legend((mylegend[k],), loc=2)
