python循环中的绘图图例

python循环中的绘图图例,python,plot,legend,correlation,Python,Plot,Legend,Correlation,下一个算法为我提供了9项资产之间相关性的良好曲线图(vDT是一个带日期的列表,mPR是45项资产x 1042个时间点的相关矩阵,asX是一个资产列表): 但是,我想将其写入for循环,因此我尝试: plt.figure(figsize=(10, 5)) for i in range(45): plt.plot(vDT, mPR[i,:]) plt.xticks(rotation=75) plt.legend(loc='center left', bbox_to_anchor=(1, 0.

下一个算法为我提供了9项资产之间相关性的良好曲线图(vDT是一个带日期的列表,mPR是45项资产x 1042个时间点的相关矩阵,asX是一个资产列表):

但是,我想将其写入for循环,因此我尝试:

plt.figure(figsize=(10, 5))
for i in range(45):
    plt.plot(vDT, mPR[i,:])
plt.xticks(rotation=75)
plt.legend(loc='center left', bbox_to_anchor=(1, 0.5))
plt.title('Plot correlations')
plt.savefig('BSE_stocks+index_Correlations2.jpg', bbox_inches='tight')
plt.show()
plt.figure(figsize=(10, 5))
for i in range(45):
    for n in range(iN):
        plt.plot(vDT, mPR[i,:], label= asX[n] + asX[n+1])
plt.xticks(rotation=75)
plt.legend(loc='center left', bbox_to_anchor=(1, 0.5))
plt.title('Plot correlations')
plt.savefig('BSE_stocks+index_Correlations2.jpg', bbox_inches='tight')
plt.show()
这给了我正确的画面,但现在我没有一个传奇。所以我试着:

plt.figure(figsize=(10, 5))
for i in range(45):
    plt.plot(vDT, mPR[i,:])
plt.xticks(rotation=75)
plt.legend(loc='center left', bbox_to_anchor=(1, 0.5))
plt.title('Plot correlations')
plt.savefig('BSE_stocks+index_Correlations2.jpg', bbox_inches='tight')
plt.show()
plt.figure(figsize=(10, 5))
for i in range(45):
    for n in range(iN):
        plt.plot(vDT, mPR[i,:], label= asX[n] + asX[n+1])
plt.xticks(rotation=75)
plt.legend(loc='center left', bbox_to_anchor=(1, 0.5))
plt.title('Plot correlations')
plt.savefig('BSE_stocks+index_Correlations2.jpg', bbox_inches='tight')
plt.show()
但是我得到了一个错误。有人知道该怎么做吗???

您上一个代码中的错误(我们还不知道)似乎是由于您在绘制
45xiN
绘图时超出了限制或覆盖了绘图,而您原来的长代码中绘制了
45
绘图。我创建了一个变通方法来避免第二个
for
循环。我创建了两个用于标签的索引列表。通过这样做,您只需要为循环使用一个
。下面是代码。您可以打印列表
索引
,以确保索引组合与第一个长代码匹配

# Create indices for labels
indices  = [(i, j) for i in range(10) for j in range(10) if i < j]
x, y = zip(*indices)

plt.figure(figsize=(10, 5))
for i in range(45):
    plt.plot(vDT, mPR[i,:], label= asX[x[i]] + asX[y[i]]) 
#为标签创建索引
指数=[(i,j)对于范围(10)中的i,如果i
您遇到了什么错误?在第二个代码中,您没有得到任何图例的原因是因为在
plt.plot(vDT,mPR[i,:])
中没有指定任何
图例。在第三个代码中,您正在打印
45xiN
打印,而在第一个代码中,您只有45个打印