matplotlib图例超出窗口区域[重复]

Posted

技术标签:

【中文标题】matplotlib图例超出窗口区域[重复]【英文标题】:matplotlib legend goes outside of the window area [duplicate] 【发布时间】:2020-05-05 08:04:59 【问题描述】:

如下图所示,带有方框的图例超出了水平线上的图形区域。

请注意,我裁剪了上半部分,因为问题出在宽度上。

matplot 脚本相当冗长,大部分代码与这个问题无关。总之,我有

 fig = plt.figure(1,figsize=(10.67,6.6))
 ...
 leg1 = plt.legend(handles = marker_handles,bbox_to_anchor=(1.2,1),loc='upper right', ncol=1)
 ax.add_artist(leg1)
 ...
 plt.savefig(filename+'.png')
 plt.show()

如果我增加figsize,那么plt.show() 会显示一个非常大的窗口,而图例仍然超出窗口边框。

我该如何解决这个问题?

【问题讨论】:

尝试将您的 bbox_to_anchor 设置为小于 1 的数字。 请在重复的答案中检查现有的解决方案。 【参考方案1】:

随便用

plt.tight_layout() 自动调整轴的尺寸以适应图例框

或者,如果您更喜欢更精细的控制:

plt.subplots_adjust(right=xxxx) 缩小轴的宽度以适应图例框

【讨论】:

以上是关于matplotlib图例超出窗口区域[重复]的主要内容,如果未能解决你的问题,请参考以下文章

删除matplotlib图例中的重复标签[重复]

Matplotlib自动图例外图[重复]

python使用matplotlib可视化线图(line plot)将可视化图像的图例(legend)放置在图像外部左侧区域

python使用matplotlib可视化线图(line plot)将可视化图像的图例(legend)放置在图像外部右侧区域

python使用matplotlib可视化线图(line plot)将可视化图像的图例(legend)放置在图像外部底部区域

python使用matplotlib可视化线图(line plot)将可视化图像的图例(legend)放置在图像外部顶部区域