如何在Python) 中统计和绘制间隔时间序列数据(每小时)?
How to Count and Plot Interval Time Series Data (Hourly) in Python)?
我有意外时间序列数据 (YYYY-MM-DD HH:MM:SS。我可以根据工作日、年份、小时计算所有数据,但我试图计算 8 到 17 小时之间的数据。此外,想要绘制并显示计数范围为 8-10、10-12、12-13、13-15、15-17。
我的代码;
df = pd.read_excel("C:/Users/gokhankazar/Desktop/Accident Times/Accident_Time-Series.xlsx")
df["Hour"] = df.Datetime.dt.hour
df.Hour.value_counts().sort_index().plot(marker='o', linestyle='-')
plt.xlabel('Hours', fontsize=10)
plt.ylabel("Number of Accident", fontsize= 10)
plt.show()
我得到如下图
My figure that I got
但是如何更改绘图中的轴范围。
我也有平日图一样
WeekDay figure
我想在 x 轴上写星期一而不是“0”,星期日而不是“6”以及所有其他日子
我的日期时间列为(总共 268000 行)并且只是根据时间序列数据计算事故事件
18.05.2015 09:00:00
18.05.2015 15:00:00
18.05.2015 14:14:00
18.05.2015 09:00:00
.
.
.
您需要每 2 小时对数据进行一次分组,并为绘图设置适当的刻度。
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
df = pd.DataFrame({'date': ['18.05.2015 09:00:00','18.05.2015 15:00:00', '18.05.2015 14:14:00', '18.05.2015 11:00:00']})
# convert to datetime
df['date'] = pd.to_datetime(df['date'])
# group time every 2h
df = df.groupby(df.date.dt.floor('2H')).count()
# plot data
fig, ax1 = plt.subplots()
ax1.set_xticks(np.arange(8, 15, 2))
ax1.set_xticklabels(['8-10', '10-12', '12-14', '14-16'])
plt.plot(df.index.hour, df.date, '.')
plt.show()
输出:
我有意外时间序列数据 (YYYY-MM-DD HH:MM:SS。我可以根据工作日、年份、小时计算所有数据,但我试图计算 8 到 17 小时之间的数据。此外,想要绘制并显示计数范围为 8-10、10-12、12-13、13-15、15-17。
我的代码;
df = pd.read_excel("C:/Users/gokhankazar/Desktop/Accident Times/Accident_Time-Series.xlsx")
df["Hour"] = df.Datetime.dt.hour
df.Hour.value_counts().sort_index().plot(marker='o', linestyle='-')
plt.xlabel('Hours', fontsize=10)
plt.ylabel("Number of Accident", fontsize= 10)
plt.show()
我得到如下图 My figure that I got
但是如何更改绘图中的轴范围。
我也有平日图一样 WeekDay figure
我想在 x 轴上写星期一而不是“0”,星期日而不是“6”以及所有其他日子
我的日期时间列为(总共 268000 行)并且只是根据时间序列数据计算事故事件
18.05.2015 09:00:00
18.05.2015 15:00:00
18.05.2015 14:14:00
18.05.2015 09:00:00
.
.
.
您需要每 2 小时对数据进行一次分组,并为绘图设置适当的刻度。
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
df = pd.DataFrame({'date': ['18.05.2015 09:00:00','18.05.2015 15:00:00', '18.05.2015 14:14:00', '18.05.2015 11:00:00']})
# convert to datetime
df['date'] = pd.to_datetime(df['date'])
# group time every 2h
df = df.groupby(df.date.dt.floor('2H')).count()
# plot data
fig, ax1 = plt.subplots()
ax1.set_xticks(np.arange(8, 15, 2))
ax1.set_xticklabels(['8-10', '10-12', '12-14', '14-16'])
plt.plot(df.index.hour, df.date, '.')
plt.show()
输出: