You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Python Seaborn合并两个时间序列图

时间序列训练-预测全周期统一可视化实现

核心实现逻辑:

  • 放弃训练集、测试集分两张图/两个子图的绘制方式,在同一坐标轴下拼接连续时间轴,保证X轴按时间先后顺序连贯展示
  • 按从底层到顶层的顺序绘制元素,避免图层遮挡:先画可信区间填充带,再画后验预测曲线,最后绘制训练集、测试集的真实观测散点
  • 在测试集第一个时间步的X轴位置添加垂直分割线,明确划分训练阶段和预测阶段的边界

完整可运行示例代码

以下代码包含模拟数据生成、全流程绘图逻辑,替换代码中模拟数据部分为你的真实数据集即可直接使用:

import numpy as np
import matplotlib.pyplot as plt

# ------------ 数据部分:替换为你自己的训练/测试集、预测结果数据 ------------
# 构造连续时间轴:前100个时间步为训练集,后50个时间步为测试集
train_time = np.arange(0, 100)
test_time = np.arange(100, 150)

# 模拟训练集观测值
train_obs = 0.1 * train_time + np.random.normal(0, 1, size=len(train_time))
# 模拟测试集真实观测值
test_obs = 0.1 * test_time + np.random.normal(0, 1, size=len(test_time))
# 模拟测试集后验预测均值
pred_mean = 0.1 * test_time
# 模拟95%可信区间上下界
pred_ci_lower = pred_mean - 1.96 * 1.2
pred_ci_upper = pred_mean + 1.96 * 1.2

# ------------ 绘图部分 ------------
plt.figure(figsize=(12, 5), dpi=100)
ax = plt.gca()

# 1. 绘制最底层:测试集可信区间填充带
ax.fill_between(
    test_time, pred_ci_lower, pred_ci_upper,
    color='#a8d1ff', alpha=0.4, label='95%可信区间'
)
# 2. 绘制后验预测均值曲线
ax.plot(
    test_time, pred_mean,
    color='#1f77b4', linewidth=2, label='后验预测均值'
)
# 3. 绘制训练集观测散点
ax.scatter(
    train_time, train_obs,
    color='#2ca02c', s=15, alpha=0.7, label='训练集观测值'
)
# 4. 绘制测试集真实观测散点
ax.scatter(
    test_time, test_obs,
    color='#ff7f0e', s=15, alpha=0.7, label='测试集真实值'
)
# 5. 绘制训练-测试分割垂直线
split_pos = test_time[0]
ax.axvline(x=split_pos, color='crimson', linestyle='--', linewidth=1.5)
ax.text(
    split_pos + 1, ax.get_ylim()[1] * 0.95,
    '测试集起始位置', color='crimson', va='top'
)

# 图表基础配置
ax.set_xlabel('时间步')
ax.set_ylabel('观测值')
ax.set_title('时间序列全周期预测拟合效果')
ax.legend(loc='upper left')
plt.grid(alpha=0.3)
plt.tight_layout()
plt.show()

输出图表为单张连续时间轴的可视化结果:分割线左侧展示训练阶段的真实观测分布,右侧展示预测区间、预测曲线与测试集真实值的对应关系,可直接直观判断预测结果对测试集的拟合程度、可信区间的覆盖效果。

内容的提问来源于stack exchange,提问作者Jordan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 00:45:49