我正在尝试使用ax.legend(loc =(0,1.1));在matplotlib中的斧头上方放置一个图例。但是,如果我将图形大小从(5,5)更改为(5,10),则图例会显示在距图的顶部边缘不同的距离处。
有什么方法可以参考图的顶部边缘并将其偏移一定距离吗?
谢谢
答案 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()
有关如何在轴外放置图例的更多详细说明,请参见How to put the legend out of the plot。同样相关:How to specify legend position in matplotlib in graph coordinates