Гистограмма в час - матплотлиб - PullRequest
0 голосов
/ 11 ноября 2018

Я анализирую публичные данные о транспортных авариях в Великобритании.

Мой фрейм данных выглядит так:

Index     Time

0         02:30
1         00:37
2         01:25
3         09:15
4         07:53
5         09:29
6         08:53
7         10:05

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

  import matplotlib
  import matplotlib.pyplot as plt
  import numpy as np
  import datetime as dt
  import matplotlib.dates as mdates
  df['hour']=pd.to_datetime(df['Time'],format='%H:%M')
  df.set_index('hour', drop=False, inplace=True)
  df['hour'].groupby(pd.Grouper(freq='60Min')).count().plot(kind='bar', color='b')

Это вывод:

Graph

На этом графике я хотел бы изменить метки на оси х в формате «чч: мм». Как бы я поступил так?

1 Ответ

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

Чего вам не хватает, так это установки формата формата оси X Matplotlib:

df.set_index('hour', drop=False, inplace=True)
df = df['hour'].groupby(pd.Grouper(freq='60Min')).count()
ax = df.plot(kind='bar', color='b')
ticklabels = df.index.strftime('%H:%Mh')
ax.xaxis.set_major_formatter(matplotlib.ticker.FixedFormatter(ticklabels))
plt.show()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...