Подтвердить что ты не робот

Создание меток, где строка отображается в матплот-либере

У меня есть фигура, созданная в matplotlib (данные временного ряда), над которой есть серия

matplotlib.pyplot.axvline

линии. Я хотел бы создать ярлыки на графике, которые близки (вероятно, на RHS линии и к вершине рисунка) эти вертикальные линии.

4b9b3361

Ответ 1

Вы можете использовать что-то вроде

plt.axvline(10)
plt.text(10.1,0,'blah',rotation=90)

вам, возможно, придется поиграть со значениями x и y в text, чтобы правильно его выровнять. Вы можете найти более полную документацию здесь.

Ответ 2

Решение без ручного размещения заключается в использовании "смешанных преобразований".

Преобразования преобразуют координаты из одной системы координат в другую. Задав преобразование через параметр transform text, вы можете задать координаты x и y текста в системе координат оси (переходя от 0 к 1 слева направо/сверху вниз по осям x/y соответственно), При смешанных преобразованиях вы можете использовать смешанную систему координат.

Это именно то, что вам нужно: у вас есть координата x, заданная данными, и вы хотите разместить текст на осях y где-нибудь относительно оси, скажем, в центре. Код для этого выглядит следующим образом:

import matplotlib.transforms as transforms
import matplotlib.pyplot as plt

fig, ax = plt.subplots()

# the x coords of this transformation are data, and the
# y coord are axes
trans = transforms.blended_transform_factory(
    ax.transData, ax.transAxes)

x = 10
ax.axvline(x)
plt.text(x, .5, 'hello', transform=trans)

plt.show()