如何从全年8760小时电力负荷数据中绘制随机单日24小时曲线图?
解决方法
首先需要明确:你当前的Time_of_Day变量如果是通过groupby(loadData.index.hour).mean()得到的,它应该只有24条数据(对应0-23点的小时平均负荷),但你展示的输出是全年8760条小时数据,可能是代码执行或展示有误。要选取随机一天的24小时数据,需要基于原始的全年小时数据集(即loadData)来操作,步骤如下:
步骤1:按日期分组数据
先将原始数据按日期分组,把每天的24小时数据归类到一起:
# 按日期分组,得到每天的数据集 daily_groups = loadData.groupby(loadData.index.date)
步骤2:随机选择一天
从所有日期中随机挑选一个,提取该日期的完整24小时数据:
import random # 获取所有日期的列表 all_dates = list(daily_groups.groups.keys()) # 随机选择一个日期 random_selected_date = random.choice(all_dates) # 获取选中日期的24小时负荷数据 selected_day_data = daily_groups.get_group(random_selected_date)
步骤3:绘制24小时负荷曲线
用matplotlib绘制该日的负荷变化曲线:
import matplotlib.pyplot as plt # 设置画布大小 plt.figure(figsize=(12, 6)) # 绘制曲线,x轴为小时,y轴为负荷值 plt.plot(selected_day_data.index.hour, selected_day_data['Load'], marker='s', linestyle='-', color='#2ecc71') # 设置图表标题和标签 plt.title(f'{random_selected_date} 24小时电力负荷变化', fontsize=14) plt.xlabel('小时', fontsize=12) plt.ylabel('电力负荷', fontsize=12) # 设置x轴刻度为0-23点 plt.xticks(range(0, 24)) # 添加网格线 plt.grid(alpha=0.3) # 显示图表 plt.show()
补充说明
如果你的Time_of_Day确实是按小时求均值后的结果(仅24条数据),那它代表的是全年每个小时的平均负荷,而非某一天的实际负荷。若要绘制这种平均曲线,直接用Time_of_Day绘图即可,但这和你需求的"随机一天"不符,所以建议使用原始数据集操作。
内容的提问来源于stack exchange,提问作者tellerYL
相关产品推荐
相关产品推荐

