Matplotlib 将图例与轴对齐

Matplotlib 将图例与轴对齐,matplotlib,legend,Matplotlib,Legend,对我来说,一个经常出现的烦恼是试图将matplotlib图例与轴对齐。要将它们放在绘图的右上方,通常建议这样做 plt.图例(bbox_to_anchor=(1.04,1),loc=“左上”) 像 导入numpy 将matplotlib.pyplot作为plt导入 x=numpy.linspace(-2,2100) y=x**2 plt.绘图(x,y,“-”,label=“x**2”) plt.图例(bbox_to_anchor=(1.04,1),loc=“左上”) plt.grid() #p

对我来说,一个经常出现的烦恼是试图将matplotlib图例与轴对齐。要将它们放在绘图的右上方,通常建议这样做

plt.图例(bbox_to_anchor=(1.04,1),loc=“左上”)

导入numpy
将matplotlib.pyplot作为plt导入
x=numpy.linspace(-2,2100)
y=x**2
plt.绘图(x,y,“-”,label=“x**2”)
plt.图例(bbox_to_anchor=(1.04,1),loc=“左上”)
plt.grid()
#plt.show()
plt.savefig(“out.png”,transparent=True)
不过,这留下了一个缺口:

摆弄神奇的值,例如,
bbox\u to\u anchor=(1.04,1.015)
,确实会上下移动图例,但是如果您在尝试了一千次之后终于获得了它,那么在调整图形大小之后,它就会变得一团糟


有关如何更好地执行此操作的任何提示?

您可以通过在指定
图例时使用
borderaxespad=0
来实现所需的对齐


完整代码

import numpy
import matplotlib.pyplot as plt

x = numpy.linspace(-2, 2, 100)
y = x ** 2
plt.plot(x, y, "-", label="x**2")

plt.legend(bbox_to_anchor=(1.04, 1), borderaxespad=0) # <--- Here
plt.grid()
导入numpy
将matplotlib.pyplot作为plt导入
x=numpy.linspace(-2,2100)
y=x**2
plt.绘图(x,y,“-”,label=“x**2”)
plt.图例(bbox_至_锚=(1.04,1),borderaxespad=0)#