【发布时间】:2018-08-18 12:07:51
【问题描述】:
下一个算法为我提供了 9 个资产之间相关性的漂亮图(vDT 是一个带有日期的列表,mPR 是 45 个资产 x 1042 个时间点的相关矩阵,asX 是一个资产列表):
plt.figure(figsize=(10, 5))
plt.plot(vDT, mPR[0,:], 'xkcd:gold', label=asX[0] + asX[1])
plt.plot(vDT, mPR[1,:], 'xkcd:tan', label=asX[0] + asX[2])
plt.plot(vDT, mPR[2,:], 'xkcd:light yellow', label=asX[0] + asX[3])
plt.plot(vDT, mPR[3,:], 'xkcd:yellow', label=asX[0] + asX[4])
plt.plot(vDT, mPR[4,:], 'xkcd:orange', label=asX[0] + asX[5])
plt.plot(vDT, mPR[5,:], 'xkcd:red', label=asX[0] + asX[6])
plt.plot(vDT, mPR[6,:], 'xkcd:deep red', label=asX[0] + asX[7])
plt.plot(vDT, mPR[7,:], 'xkcd:pink', label=asX[0] + asX[8])
plt.plot(vDT, mPR[8,:], 'xkcd:hot pink', label=asX[0] + asX[9])
plt.plot(vDT, mPR[9,:], 'xkcd:salmon', label=asX[1] + asX[2])
plt.plot(vDT, mPR[10,:], 'xkcd:light purple', label=asX[1] + asX[3])
plt.plot(vDT, mPR[11,:], 'xkcd:purple', label=asX[1] + asX[4])
plt.plot(vDT, mPR[12,:], 'xkcd:aqua', label=asX[1] + asX[5])
plt.plot(vDT, mPR[13,:], 'xkcd:sky blue', label=asX[1] + asX[6])
plt.plot(vDT, mPR[14,:], 'xkcd:blue', label=asX[1] + asX[7])
plt.plot(vDT, mPR[15,:], 'xkcd:royal blue', label=asX[1] + asX[8])
plt.plot(vDT, mPR[16,:], 'xkcd:light green', label=asX[1] + asX[9])
plt.plot(vDT, mPR[17,:], 'xkcd:dark green', label=asX[2] + asX[3])
plt.plot(vDT, mPR[18,:], 'xkcd:lime green', label=asX[2] + asX[4])
plt.plot(vDT, mPR[19,:], 'xkcd:forest green', label=asX[2] + asX[5])
plt.plot(vDT, mPR[20,:], 'xkcd:light brown', label=asX[2] + asX[6])
plt.plot(vDT, mPR[21,:], 'xkcd:grey', label=asX[2] + asX[7])
plt.plot(vDT, mPR[22,:], 'xkcd:black', label=asX[2] + asX[8])
plt.plot(vDT, mPR[23,:], 'xkcd:teal', label=asX[2] + asX[9])
plt.plot(vDT, mPR[24,:], 'xkcd:cyan', label=asX[3] + asX[4])
plt.plot(vDT, mPR[25,:], 'xkcd:maroon', label=asX[3] + asX[5])
plt.plot(vDT, mPR[26,:], 'xkcd:light rose', label=asX[3] + asX[6])
plt.plot(vDT, mPR[27,:], 'xkcd:blood', label=asX[3] + asX[7])
plt.plot(vDT, mPR[28,:], 'xkcd:berry', label=asX[3] + asX[8])
plt.plot(vDT, mPR[29,:], 'xkcd:light yellow green', label=asX[3] + asX[9])
plt.plot(vDT, mPR[30,:], 'xkcd:french blue', label=asX[4] + asX[5])
plt.plot(vDT, mPR[31,:], 'xkcd:butter yellow', label=asX[4] + asX[6])
plt.plot(vDT, mPR[32,:], 'xkcd:orangish brown', label=asX[4] + asX[7])
plt.plot(vDT, mPR[33,:], 'xkcd:deep magenta', label=asX[4] + asX[8])
plt.plot(vDT, mPR[34,:], 'xkcd:caramel', label=asX[4] + asX[9])
plt.plot(vDT, mPR[35,:], 'xkcd:chestnut', label=asX[5] + asX[6])
plt.plot(vDT, mPR[36,:], 'xkcd:heather', label=asX[5] + asX[7])
plt.plot(vDT, mPR[37,:], 'xkcd:sea', label=asX[5] + asX[8])
plt.plot(vDT, mPR[38,:], 'xkcd:tomato', label=asX[5] + asX[9])
plt.plot(vDT, mPR[39,:], 'xkcd:orangish brown', label=asX[6] + asX[7])
plt.plot(vDT, mPR[40,:], 'xkcd:lavender blue', label=asX[6] + asX[8])
plt.plot(vDT, mPR[41,:], 'xkcd:leaf', label=asX[6] + asX[9])
plt.plot(vDT, mPR[42,:], 'xkcd:dark sand', label=asX[7] + asX[8])
plt.plot(vDT, mPR[43,:], 'xkcd:vibrant blue', label=asX[7] + asX[9])
plt.plot(vDT, mPR[44,:], 'xkcd:dark coral', label=asX[8] + asX[9])
plt.xticks(rotation=75)
plt.legend(loc='center left', bbox_to_anchor=(1, 0.5))
plt.title('Plot correlations')
plt.savefig('BSE_stocks+index_Correlations.jpg', bbox_inches='tight')
plt.show()
但是我想在 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.plot(vDT, mPR[i,:])中您没有指定任何legend。在第三个代码中,您正在绘制45xiN图,而在您的第一个代码中,您只有 45 个图
标签: python plot legend correlation