Как вы построили вертикальную линию на графике временного ряда в Pandas? - программирование
Подтвердить что ты не робот

Как вы построили вертикальную линию на графике временного ряда в Pandas?

Как вы построили вертикальную линию (vlines) в сериале Pandas? Я использую Pandas для построения скользящих сред и т.д. И хочу отмечать важные позиции вертикальной линией. Можно ли использовать vlines или что-то подобное для этого? Если да, может ли кто-нибудь, пожалуйста, привести пример? В этом случае ось x - дата-время.

4b9b3361

Ответ 1

plt.axvline(x_position)

Требуются стандартные параметры форматирования (linestlye, color, ect)

(doc)

Если у вас есть ссылка на ваш объект axes:

ax.axvline(x, color='k', linestyle='--')

Ответ 2

Если у вас есть ось времени, и вы импортировали Pandas как pd, вы можете использовать:

ax.axvline(pd.to_datetime('2015-11-01'), color='r', linestyle='--', lw=2)

Для нескольких строк:

xposition = [pd.to_datetime('2010-01-01'), pd.to_datetime('2015-12-31')]
for xc in xposition:
    ax.axvline(x=xc, color='k', linestyle='-')

Ответ 3

Функция графика DataFrame возвращает объект AxesSubplot, и вы можете добавить на него столько строк, сколько захотите. Посмотрите на пример кода ниже:

%matplotlib inline

import pandas as pd

df = pd.DataFrame(index=pd.date_range("2019-07-01", "2019-07-31"))
df["y"] = pd.np.logspace(0, 1, num=len(df))

ax = df.plot()
# you can add here as many lines as you want
ax.axhline(6, color="red", linestyle="--")
ax.axvline("2019-07-24", color="red", linestyle="--")

enter image description here