【发布时间】:2018-11-10 23:55:42
【问题描述】:
我正在分析英国交通事故的公共数据。
我的数据框如下所示:
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”格式。我该怎么做呢?
【问题讨论】:
-
与this question 相同,您只需保留另一半字符串。
-
@mostafazh,谢谢你的回答。您的答案有效,但 x 轴看起来像 imgur.com/a/0gBB7KJ 。所以 x 轴没有索引(我一直在寻找 01:00h、02:00h、03:00、.. 这样的 x 轴)
-
不,我希望 x 轴按时间索引(01:00、02:00、03:00 ..而不是 02:30、00:30、01:25) .
-
@mostafazh,我的问题是我想绘制按小时分组的数据。我在第一个解决方案中做得很好。唯一的问题是数据时间格式。我需要 01:00 而不是 01/01/1900 01:00
-
@mostafazh,谢谢!!它现在工作正常,在 Jupyter 中绘图时遇到了一些问题。我刚开始用 Python 编程。关于好的 IDE 有什么建议吗?我正在使用 Jupyter,但并不完全满意。我正在寻找互动的东西。
标签: python matplotlib histogram pandas-groupby