【问题标题】:Matplotlib, 'Figure' object has no attribute 'figlegend'Matplotlib,\'Figure\' 对象没有属性 \'figlegend\'
【发布时间】:2022-11-14 17:08:53
【问题描述】:

我正在做投资组合分析。我在图表中绘制投资组合收益。我可以制作一个 5 年的数字,每年都有自己的图表,每个图表中有 2 个投资组合。然后我在一个图中有 5 个子图。对于每个子图,我有 2 行,每个投资组合一个,它们对每个子图的引用相同(见图)。所以我希望整个人物只有一个传奇。

但是,通过我的尝试,它总是返回此错误: 'Figure' 对象没有属性 'figlegend'

我已经尝试了 2 种可能性(在 matplotlib 网站上显示)来制作一个图例,它们如下:

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()

也许有人知道我的代码有什么问题,这让我得到了这个错误?

【问题讨论】:

    标签: python matplotlib figure


    【解决方案1】:

    我认为你正在寻找的只是 图例() 而不是“无花果”。 在这里得到了很好的回答:How do I make a single legend for many subplots?

    【讨论】:

      猜你喜欢
      • 2012-07-15
      • 2014-07-06
      • 1970-01-01
      • 2020-01-07
      • 2019-11-27
      • 1970-01-01
      • 1970-01-01
      • 2019-12-04
      • 1970-01-01
      相关资源
      最近更新 更多