使用 Matplotlib 和 Pandas 在同一图中按小时绘制时间序列

Plot time series by hour in the same plot with Matplotlib and Pandas

我有一个包含格式为“2017-04-01 00:00:00”的时间戳的时间序列;时间序列包含大约 30 天的数据。

为了直观地了解这个系列的可变性,我想将其绘制为一天中小时的函数,并将所有日期叠加在同一个图上。通过这种方式,水平轴的范围将从 00:00:00 到 23:45:00,我将能够看到时间戳指定的一天中任何特定时间的序列的可变性。

我的时间序列存储在 Pandas 数据框中,我使用的是 Matplotlib。有人可以告诉我是否有办法做到这一点?

我建议你遍历你的 df,每天构建数组并动态绘制它们。

previous_day = dataframe[0]['date'].day
daily_data = []
daily_times = []

for row in dataframe:
    if row['date'].day == previous_day:
        daily_data.append(row['data_to_plot'])
        daily_times.append(row['date'])

    else:
        plt.plot(daily_times, daily_data)
        previous_day = row['date'].day
        daily_data = []
        daily_times = []

plt.plot(daily_times, daily_data)
plt.show()

here 是 python 处理日期的库

here 你会发现如何用 matplotlib

叠加曲线