我有一个每月的时间序列数据(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)