You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从全年8760小时家庭用电数据绘制24小时用电变化图?

解决方案

要绘制单日24小时的用电变化曲线,核心是把全年8760小时的数据按一天中的小时(0-23)分组聚合,得到每个时刻的典型用电值,再基于此绘图。以下是具体实现步骤:

步骤1:提取小时信息并分组聚合

在你已经将Time设为索引的基础上,直接提取索引的小时部分,然后按小时对各家庭类型的用电数据取均值(也可根据需求取中位数、总和等):

# 提取小时(0-23),按小时分组计算均值,得到全年日均的小时用电数据
hourly_profile = Energy.groupby(Energy.index.hour).mean()

这一步会自动把全年中同一小时的数据归为一组,计算均值后得到24行(对应0-23点)的数据集,就是全年各时刻的平均用电模式。

步骤2:绘制24小时用电曲线

用matplotlib绘制聚合后的结果,横轴设为0-23小时,纵轴为用电负荷:

import matplotlib.pyplot as plt

fig, ax = plt.subplots(figsize=(10, 6))
# 遍历各家庭类型列,分别绘制曲线
for col in hourly_profile.columns:
    ax.plot(hourly_profile.index, hourly_profile[col], label=col)

ax.set_ylabel('小时用电量 [kWh]', size=12)
ax.set_xlabel('一天中的小时(0-23)', size=12)
ax.set_xticks(range(0, 24))  # 设置横轴刻度为0到23
ax.legend()
plt.title('全年日均24小时用电负荷曲线')
plt.show()

可选:绘制某特定日期的单天曲线

如果需要查看某一天的实际24小时用电情况,直接筛选该日期的数据即可:

# 筛选2019年1月1日的数据
specific_day = Energy.loc['2019-01-01']

fig, ax = plt.subplots(figsize=(10, 6))
for col in specific_day.columns:
    ax.plot(specific_day.index.hour, specific_day[col], label=col)

ax.set_ylabel('小时用电量 [kWh]', size=12)
ax.set_xlabel('小时(0-23)', size=12)
ax.set_xticks(range(0, 24))
ax.legend()
plt.title('2019-01-01 24小时用电负荷曲线')
plt.show()

关键说明

  • 你之前直接绘制Energy会遍历全年所有时间点,所以得到的是全年曲线;按小时聚合后,数据量压缩为24个点,就能聚焦单日模式。
  • 如果你的数据中有重复列名(比如示例里的两个Affluent),建议先重命名处理,避免聚合出错:
    householdData.columns = ['Time', 'Affluent_1', 'Adversity', 'Affluent_2', 'Comfortable']
    Energy = householdData.set_index('Time')
    

内容的提问来源于stack exchange,提问作者tellerYL

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 03:48:23