Как вы построили вертикальную линию (vlines) в сериале Pandas? Я использую Pandas для построения скользящих сред и т.д. И хочу отмечать важные позиции вертикальной линией. Можно ли использовать vlines или что-то подобное для этого? Если да, может ли кто-нибудь, пожалуйста, привести пример? В этом случае ось x - дата-время.
Как вы построили вертикальную линию на графике временного ряда в Pandas?
Ответ 1
plt.axvline(x_position)
Требуются стандартные параметры форматирования (linestlye
, color
, ect)
Если у вас есть ссылка на ваш объект 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="--")