在时间序列图上将不同的分类 类 显示为不同的颜色

Show different classification classes as different colors on a timeseries plot

我想在 python.

的背景中可视化具有不同 类 的时间序列线图

假设我有 5 分钟的时间序列和 3 类,如 table 1.

所示
Time start Time End Class
00:00:00 00:00:30 1
00:00:31 00:01:30 2
00:01:31 00:04:00 3
00:04:01 00:05:00 2

我还有 table 2.

中显示的每 10 秒的压力值
Time End Pressure
00:00:10 0.2
00:00:20 0.3
00:00:30 0.53
. .
. .
00:04:50 0.7
00:05:00 0.92

我想在 类 上用不同颜色绘制折线图,​​如下图所示。线图遵循 table 2,线图的背景颜色遵循 table 1。

我愿意使用任何可以帮助我完成此可视化的 python 库。

您可以使用以下代码段:

# convert timestamp to seconds
df2['Time End'] = pd.to_timedelta(df2['Time End']).dt.total_seconds()
df1['Time start'] = pd.to_timedelta(df1['Time start']).dt.total_seconds()
df1['Time End'] = pd.to_timedelta(df1['Time End']).dt.total_seconds()

# plot line
ax = df2.plot(x='Time End', y='Pressure')
ax.set_ylabel('Pressure')

# plot spans
colors = {1: '#D9E8FB', 2: '#F7CECC', 3: '#FFF2CD'}
for _, (x1, x2, c) in df1.iterrows():
    ax.axvspan(x1, x2, color=colors[c])