Проблема с получением гистограммы на графике в Python - PullRequest
0 голосов
/ 28 ноября 2018

Это своего рода вопрос из двух частей.У меня есть набор данных, проиндексированных по индексу даты и времени:

     DateTime,  ClosedPL,  MaxClosedDraw,   Max,  MaxDrawPerPeriod
1/6/2012 10:52,     -7350,         -20643,     0,                 0
1/6/2012 12:00,         0,         -20643,     0,                 0
1/6/2012 14:09,         0,         -20643,     0,                 0
1/6/2012 14:29,         0,         -20643,     0,                 0
1/6/2012 14:30,         0,         -20643,     0,            -20643
1/8/2012 18:00,         0,              0,   882,                 0
1/9/2012 8:59,          0,           -924,   882,                 0
1/9/2012 9:00,          0,          -1155,   882,                 0
1/9/2012 10:00,         0,          -3423,   882,                 0
1/9/2012 11:03,         0,          -3549,   882,                 0
1/9/2012 12:10,         0,          -3549,   882,                 0
1/9/2012 13:27,         0,          -3549,   882,                 0
1/9/2012 14:17,      3250,          -3549,   882,             -3549
1/9/2012 14:26,         0,              0,  1218,                 0
1/9/2012 14:29,     -1254,          -3318,  1218,                 0
1/9/2012 14:30,         0,          -3318,  1218,                 0
1/9/2012 18:02,         0,          -3654,  1218,             -3654
1/10/2012 8:22,      1244,              0,  6426,                 0
1/10/2012 9:00,         0,          -1869,  6426,                 0
1/10/2012 9:37,         0,          -2856,  6426,                 0
1/10/2012 10:00,        0,          -3276,  6426,                 0 

Я пытаюсь создать два графика на одном рисунке - 1 линейный график, показывающий closedPL и один из MaxDrawPerPeriod, представленный гистограммой,Ось X будет указателем даты и времени.Я бы хотел, чтобы гистограмма проходила вдоль нижней части графика, но с ограниченной высотой, чтобы не мешать графику.Таким образом, часть 1 будет о том, как добавить к этому график, а часть 2 ниже:

stats_df.plot(kind='line', y='ClosedPL_Accum')
stats_df.plot(kind='bar', y='MaxDrawPerPeriod')
plt.show()

По какой-то причине - я не могу заставить гистограмму работать правильно, даже когда я запускаю ее на нейсвоя.Вот как это выглядит, и на то, чтобы это сделать, уходит 10 минут.Я делаю что-то не так с моим кодом?enter image description here

1 Ответ

0 голосов
/ 28 ноября 2018

Вы создаете столько столбцов, сколько у вас есть строк в вашем фрейме данных, которых кажется много.У каждого есть свой ярлык, так что в итоге он становится нечитаемым.Для сюжета, который вы ищете, вам нужно использовать matplotlib.Вам нужно будет конвертировать ваш индекс в дату и время, если это еще не сделано, и построить график bar.Затем создайте двойную ось axtwin = ax.twinx() и нанесите на нее свой линейный график.Или наоборот.

import matlotlib.pyplot as plt

fig, ax = plt.subplots()

ax.bar(df.index, df['MaxDrawPerPeriod'])
axtwin = ax.twinx()
axtwin.plot(df.index, df['ClosedPL_Accum'])

ax.set_ylim(...)     # you need to set the limits to the numbers you need
axtwin.set_ylim(...)

plt.show()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...