将图例以恒定的距离放在斧头上方

时间:2019-02-06 01:56:02

标签: python matplotlib

我正在尝试使用ax.legend(loc =(0,1.1));在matplotlib中的斧头上方放置一个图例。但是,如果我将图形大小从(5,5)更改为(5,10),则图例会显示在距图的顶部边缘不同的距离处。

有什么方法可以参考图的顶部边缘并将其偏移一定距离吗?

谢谢

1 个答案:

答案 0 :(得分:1)

默认情况下,图例边界框和轴之间的距离是恒定的。这是通过borderaxespad参数设置的。默认为rc值rcParams["legend.borderaxespad"],通常将其设置为0.5(以fontsize为单位)。

因此,基本上,您可以免费获得所要求的行为。但是请记住,您应该在要填充的图例的角落指定loc。即

import numpy as np
import matplotlib.pyplot as plt

for figsize in [(5,4), (5,9)]:
    fig, ax = plt.subplots(figsize=figsize)
    ax.plot([1,2,3], label="label")

    ax.legend(loc="lower left", bbox_to_anchor=(0,1))

plt.show()

enter image description here

有关如何在轴外放置图例的更多详细说明,请参见How to put the legend out of the plot。同样相关:How to specify legend position in matplotlib in graph coordinates