matplotlib 直方图/小时

y4ekin9u  于 2023-10-24  发布在  其他
关注(0)|答案(1)|浏览(111)

我在分析英国交通事故的公开数据。
我的dataframe看起来像这样:

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')

这是输出:

在这个图中,我想把x轴上的标签改为'hh:mm'格式。我该怎么做呢?

8fq7wneg

8fq7wneg1#

您缺少的是设置matplotlib x轴格式的格式:

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()

相关问题