如何按给定的频率分组,比如不同日期的每小时,并为时间序列数据集中的一列创建一组箱线图? [英] How to group by a given frequency let say Hourly for different dates, and create a set of box plot for one column in a time series data set?

查看:50
本文介绍了如何按给定的频率分组,比如不同日期的每小时,并为时间序列数据集中的一列创建一组箱线图?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

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

How to group by a given frequency let say Hourly for different dates, and create a set of box plot for one column in a time series data set ?

A similar problem and solution is below. But the below would group hourly data with regards less of date. But the ask over here is, let say we have 10 day data , one Box plot for each day's each hour. Hence we need 10 * 24 Box Plots in single frame. Oder needs to be maintined as Day_1 Hour 1, Day_1 Hour 2 , .. Day 10 Hour 24

Box plot of hourly data in Time Series 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)

解决方案

Just add hue:

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

Output:

这篇关于如何按给定的频率分组,比如不同日期的每小时,并为时间序列数据集中的一列创建一组箱线图?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆