Вы хотите разместить текст «в верхнем левом углу области графика».«Площадь участка» называется осями.На ум приходят три решения:
Текст в координатах осей
Вы можете указать текст в координатах осей.Они варьируются от (0,0)
в нижнем левом углу осей до (1,1)
в верхнем правом углу осей.Соответствующее преобразование получается через ax.transAxes
.
import matplotlib.pyplot as plt
fig, ax = plt.subplots()
ax.text(0.02, 0.98, "Text", ha="left", va="top", transform=ax.transAxes)
plt.show()
Аннотация со смещением
Приведенное выше расстояние между текстом и верхним левым углом будет зависеть от размера осей.Следовательно, может быть полезно расположить текст точно в верхнем левом углу (т.е. (0,1)
в координатах осей), а затем сместить его на несколько точек, т.е. в абсолютных единицах.
ax.annotate("Text", xy=(0,1), xycoords="axes fraction",
xytext=(5,-5), textcoords="offset points",
ha="left", va="top")
Результат здесь выглядит аналогично приведенному выше, но не зависит от осей или размера фигуры;текст всегда будет на расстоянии 5 пунктов от верхнего левого угла.
Текст в закрепленном положении
Наконец, вы, возможно, вообще не хотите указывать какие-либо координаты.В конце концов "upper left"
должно быть достаточно в качестве информации о позиционировании.Это будет достигнуто через AnchoredText
следующим образом.
import matplotlib.pyplot as plt
from matplotlib.offsetbox import AnchoredText
fig, ax = plt.subplots()
anc = AnchoredText("Text", loc="upper left", frameon=False)
ax.add_artist(anc)
plt.show()