Добавление маркера на график в определенных точках - PullRequest
0 голосов
/ 08 декабря 2018

У меня есть фрейм данных (первые несколько строк):

enter image description here

Я могу построить его с помощью matplotlib.pyplot:

fig = plt.figure()
ax1 = fig.add_subplot(111,  ylabel='Price')

df1[['Close']].plot(ax=ax1)

Чтобы получить:

enter image description here

Что я хотел бы сделать, это добавить маркер на график вниз треугольника по индексу 2018-09-10 04:00:00, которыйобозначается значением -1 в столбце позиции информационного кадра.

Я пытался сделать это:

fig = plt.figure()
ax1 = fig.add_subplot(111,  ylabel='Price')

df1[['Close']].plot(ax=ax1)
ax1.plot(
    df1.loc[df1.positions == -1.0].index,
    df1.Close[df1.positions == -1.0],
    'v', markersize=5, color='k'
)

Я получаю график так:

enter image description here

Итак, две вещи.Во-первых, индекс конвертируется во что-то, что переходит к 2055 году, я не понимаю почему.Плюс есть ли способ добавить маркер в определенную позицию, используя только первый plot вызов?Я пытался использовать markevery, но безуспешно.

1 Ответ

0 голосов
/ 09 декабря 2018

Если вы хотите объединить графики панды и графики даты и времени matplotlib, график панд необходимо построить в режиме совместимости

df1['Close'].plot(ax=ax1, x_compat=True)

Это может дать вам уже нужный график.

Если вы не хотите использовать matplotlib, вы можете построить отфильтрованный фрейм данных

df1['Close'].plot(ax=ax1)
df1['Close'][df1.positions == -1.0].plot(ax=ax1, marker="v", markersize=5, color='k')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...