首页 > 解决方案 > 如何按给定的频率分组,比如说不同日期的每小时,并为时间序列数据集中的一列创建一组箱线图?

问题描述

如何按给定的频率分组,比如说不同日期的每小时一次,并为时间序列数据集中的一列创建一组箱线图?

类似的问题和解决方案如下。但是下面将根据较少的日期对每小时数据进行分组。但是这里的问题是,假设我们有 10 天的数据,每天每小时都有一个箱形图。因此,我们需要单帧10 * 24箱线图。Oder 需要维护为 Day_1 Hour 1, Day_1 Hour 2 , .. Day 10 Hour 24

时间序列 Python 中每小时数据的箱线图

range = pd.date_range('2015-01-01', '2015-01-10', freq='1min')
df = pd.DataFrame(index = range)

# Average speed in miles per hour
df['speed'] = np.random.randint(low=0, high=60, size=len(df.index))
# Distance in miles (speed * 0.5 hours)
df['distance'] = df['speed'] * 0.25 
# Cumulative distance travelled
df['cumulative_distance'] = df.distance.cumsum()
df.head()

sns.boxplot(x=df.index.hour, y=df.speed)

标签: pythonmatplotlibtime-seriesseaborn

解决方案


只需添加hue

fig,ax=plt.subplots(figsize=(30,8))
sns.boxplot(x=df.index.hour, y=df.speed, hue=df.index.day, ax=ax)

输出:

在此处输入图像描述


推荐阅读