История графика с указателем даты на оси х - PullRequest
0 голосов
/ 09 апреля 2020

У меня есть следующие данные:

            num_incidents
date                     
2014-01-01            208
2014-01-02            112
...                   ...
2018-03-30             67
2018-03-31             77

Если я попытаюсь построить его, используя метод гистограммы по умолчанию, я получу следующий вывод:

daily_incidents_df.hist()
plt.show()

enter image description here

Хотя это полезно, я также хотел бы построить что-то вроде следующего:

enter image description here

Ответы [ 2 ]

1 голос
/ 09 апреля 2020

Предположим, что исходный DataFrame содержит:

            num_incidents
date                     
2014-01-01            208
2014-01-02            112
2015-02-02            100
2015-03-02            130
2016-02-02            130
2016-03-02            130
2011-02-02            170
2011-03-02            130
2018-03-30             67
2018-03-31             77

Для вычисления годовых итогов выполните:

s = df.num_incidents.groupby(df.index.year).sum()

Затем, чтобы нарисовать свою картинку, выполните:

ax = s.plot.bar(rot=0, width=0.9)
ax.set_xlabel('Year', fontsize=16)
ax.set_ylabel('Incidents', fontsize=16);

Обратите внимание на ;, завершающий последнюю инструкцию, для подавления дополнительного отображения, касающегося последнего созданного рисованного объекта.

Установите width параметр чуть ниже 1.0 , чтобы заполнить почти все пространство с решетками на каждый год. Для приведенных выше данных я получил следующую картину:

enter image description here

1 голос
/ 09 апреля 2020

Вы можете создать столбец года:

df['Year'] = df['date'].dt.year
df[['Year', 'num_incidents']].hist()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...