Я хотел бы получить это:

Но рамка легенды должна быть идеально выровнена по текстовому полю над ней. Сейчас я использую плохое, ручное решение:
from matplotlib import pyplot as plt
fig, ax = plt.subplots()
for i in range(5):
ax.plot([i, 0],label=i)
pad = 0.02
text = ax.text(1-pad, 1-pad, "Some words", bbox=dict(alpha=1),
transform=ax.transAxes, ha="right", va="top")
# text_height = text.get_bbox_patch().get_height() # doesn't work
text_height=0.05
ax.legend(loc="upper right", bbox_to_anchor=(1-pad, 1-pad-text_height))
Так, как я могу улучшить и автоматизировать это выравнивание?
Также было бы неплохо, если бы я мог разумно установить параметр pad
автоматически.