Skip to main content
 首页 » 编程设计

python之Matplotlib : what is wrong with my code 子图中循环内的图例

2025年05月04日14rubylouvre

我有一个包含 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)