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

需求:基于含3个时间变量的DataFrame绘制带基线的轨迹折线图

解决方案

1. 数据预处理

首先修正原始DataFrame里的列名拼写错误(TIme_3改为Time_3),给每条轨迹添加上(0,0)基线起点,再把宽格式数据转成适合绘图的长格式:

import pandas as pd
import matplotlib.pyplot as plt

# 修正列名并创建DataFrame
df = pd.DataFrame({
    "Time_1": [-4.5, -0.8, -3.0, 0.2, -2.5],
    "Time_2": [-3, -0.2, -2.5, 0.3, 1],
    "Time_3": [-2, 0, -1, 0.5, 1]
})

# 添加基线起点(0,0),调整列顺序
df["Time_0"] = 0
df = df[["Time_0", "Time_1", "Time_2", "Time_3"]]

# 转换为长格式,提取时间点数字
df_long = df.melt(var_name="Time", value_name="Value", ignore_index=False).reset_index()
df_long["Time_Point"] = df_long["Time"].str.extract(r'(\d+)').astype(int)

2. 绘制目标轨迹图

用Matplotlib绘制每条观测的轨迹线,同时在每个时间点添加数值标记点,设置X轴对应时间点标签:

plt.figure(figsize=(8, 6))

# 逐个绘制每条观测的轨迹
for idx in df_long["index"].unique():
    track_data = df_long[df_long["index"] == idx]
    plt.plot(track_data["Time_Point"], track_data["Value"], marker='o', linestyle='-', alpha=0.7)

# 设置X轴刻度与标签
plt.xticks([0, 1, 2, 3], ["基线", "Time_1", "Time_2", "Time_3"])
plt.xlabel("时间点")
plt.ylabel("观测指标数值")
plt.title("观测指标时间轨迹图")
plt.grid(True, alpha=0.3)

plt.show()

核心要点

  • 修正列名拼写错误避免后续报错
  • 通过新增Time_0列实现(0,0)基线起点的要求
  • 长格式数据更适合按单条观测轨迹绘制
  • marker='o'参数确保每个时间点都显示数值点,匹配参考图样式

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 22:25:18