python - 绘制数小时内每列数据帧的最大值
问题描述
我有一个每月时间序列数据(5 分钟),其中每天是一列,每 5 分钟是一行,所以形状是(288,30)。我想将所有数据绘制为具有低 alpha 的细线。此外,在同一张图上,我想将它们各自时间 ID 上的最大值绘制为粗点,以说明它们出现的位置。
我已经尝试了下面的代码,但无法将 timeindex 轴与最大值的 ID 链接起来。
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
df = pd.DataFrame(np.random.randint(0,100,size=(8640, 1)),index=pd.date_range(start="20180301", freq='5T',periods=8640),columns=['A'])
df_all_days=df.groupby(df.index.time).aggregate(lambda x:list(x))
df_all_days_exp=df_all_days.apply(pd.Series)
df_all_days_exp_Max=df_all_days_exp.max(axis=0)
df_all_days_exp_MaxID=df_all_days_exp.idxmax(axis=0)
df_all_days_exp_Max_ID=pd.DataFrame([df_all_days_exp_Max,df_all_days_exp_MaxID]).T
plt.figure()
plt.plot(df_all_days_exp,linewidth=0.3,alpha=0.4)
plt.plot(df_all_days_exp_Max_ID,'.k',linewidth=1.5)
解决方案
推荐阅读
- apache - 容器运行超出内存限制 - 收到信号 15:SIGTERM
- c - 对我的 Atmega644 MCU 进行编程时。为什么 PORTD |= 0b00100000 有效,但 PORTD |= (PD5 <<1) 无效?
- sql - 如何在sql中创建一个带参数的视图
- c - 我的代码不返回输出。它只返回退出代码
- java - 如何在 Evosuite 测试生成时获得更多(所有)极端案例?
- r - 使用 R 在另一个之下绘制多个时间序列
- corda - Corda 不会在非开发模式下加载我的 cordapp
- amazon-web-services - ELB 和 CloudFront:我可以在 CloudFront 上保留一些文件夹,在 EC2 上保留其他文件夹吗?
- c# - 如何检查和转换 IEnumerable 值以显示在视图中?
- mysql - 试图了解 Rails 测试的工作原理并遇到模型问题