Matplotlib,'Figure'对象没有属性'figlegend' [重复]

polhcujo  于 2022-11-15  发布在  其他
关注(0)|答案(1)|浏览(147)

此问题在此处已有答案

How do I make a single legend for many subplots?(共10个答案)
3天前关闭。
我正在做一个投资组合分析。我把投资组合的回报画在一个图表上。我可以画一个5年的图表,每一年都有自己的图表,每个图表中有2个投资组合。我在一个图表中有5个子图。对于每个子图,我有2条线,每个投资组合一条线。这是指相同的每个子情节(见图像)。所以我想只有一个图例为整个数字。

但是,在我尝试之后,它总是返回以下错误:'Figure'对象没有属性'figlegend'
我已经尝试了2种可能性(在matplotlib网站上显示)来制作figlegend,它们是:

periods= [0,60,120,180,240,300,360,420,480,540,600,660,720,780,840,900]


fig, axis = plt.subplots(5, 1)
fig.set_size_inches(15, 20)
fig.tight_layout(pad=5.0)
for i in range(5):
    p = i+0 
    axis[i].plot(return_pf_market[periods[p]:periods[p+1]], "darkcyan")
    axis[i].plot(return_pf_optimized[periods[p]:periods[p+1]], "lightgreen")
    axis[i].set_title(year_str[p])
    axis[i].set_xlabel(year_TR[p]+" to "+ year_TR[p+4])
fig.figlegend(['Standard Portfolio', 'Green Portfolio'])
plt.show()

fig, axis = plt.subplots(5, 1)
fig.set_size_inches(15, 20)
fig.tight_layout(pad=5.0)
for i in range(5):
    p = i+0 
    axis[i].plot(return_pf_market[periods[p]:periods[p+1]], "darkcyan", label='Standard Portfolio')
    axis[i].plot(return_pf_optimized[periods[p]:periods[p+1]], "lightgreen",  label='Green Portfolio')
    axis[i].set_title(year_str[p])
    axis[i].set_xlabel(year_TR[p]+" to "+ year_TR[p+4])
axis.figlegend()
plt.show()

也许有人知道我的代码中有什么错误,使我得到这个错误?

egdjgwm8

egdjgwm81#

我认为你要找的只是fig.legend()而不是“figlegend”。这个问题在这里得到了很好的回答:How do I make a single legend for many subplots?

相关问题