matplotlib:将图例与字幕对齐(文本底部,垂直对齐)

时间:2019-12-04 16:15:14

标签: matplotlib alignment anchor legend title

我有一个带有外部水平图例(图例)和超级标题(suptitle)的子图。我想将它们垂直对齐在文本底部。我用fig.suptitle('title', ha='left', y=placement)设置标题的垂直位置。当我尝试使用fig.legend(handles, labels, loc=(0.65, placement))设置图例的位置时,它未对齐。我怀疑这是对象对齐的问题,并且图例具有边框...因此我将图例的填充更改为0,但仍然需要对其进行调整。

如何明确设置字幕和图例的锚点或节点?

编辑

下面附有图片。我相信我已经通过设置suptitle参数va='bottomlegend参数borderpad=0.0, borderaxespad=0解决了这个问题。现在,如果我有边界,该怎么办?我还想知道如何显式设置图例的锚点。

解决方案

在图例中设置bbox_to_anchor参数时,它基本上改变了图例的剪切位置。如果bbox没有高度或宽度(2元组),则为点。然后,loc参数是图例框架上锚定到bbox的点。启用loc时,bbox由MPL决定。

比方说,我想要标题在左侧,图例在右侧(无框),并在底部水平对齐。 Mmy解决方案如下:

fig.suptitle('title', ha='left', va='bottom', y=placement, x=0.02)
fig.legend(handles, labels, 
    loc='lower right',
    bbox_to_anchor=(0.98, placement), 
    borderpad=0.0,
    borderaxespad=0,
    ncol=3,
)

enter image description here

0 个答案:

没有答案