You need to enable JavaScript to run this app. 如何将表格首行日期作为X轴,绘制多ID对应数据的多折线图
优惠活动
大模型
产品
解决方案
定价
更多

如何将表格首行日期作为X轴,绘制多ID对应数据的多折线图

实现方案(Python 环境)

前置依赖

需要提前安装以下库:

  • pandas
  • matplotlib
  • seaborn
    安装命令:pip install pandas matplotlib seaborn

代码实现

import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
from matplotlib.dates import DateFormatter
import matplotlib.dates as mdates

# 1. 读取数据,本地csv文件可替换为 pd.read_csv("你的数据文件路径.csv")
data = {
    "ID": ["ID_1", "ID_2", "ID_3", "ID_4", "ID_5"],
    "01-02-2018": [0.5, 0.3, 0.4, 0.6, 0.8],
    "02-02-2018": [0.3, 0.2, 0.6, 0.7, 0.4],
    "03-02-2018": [0.6, 0.5, 0.4, 0.4, 0.3],
    "29-03-2018": [0.4, 0.5, 0.3, 0.2, 0.6],
    "30-03-2018": [0.5, 0.3, 0.4, 0.2, 0.8]
}
df = pd.DataFrame(data)

# 2. 宽表转长表,适配绘图逻辑
df_long = df.melt(id_vars="ID", var_name="date", value_name="value")
# 3. 转换日期格式,避免X轴按字符串排序出现混乱
df_long["date"] = pd.to_datetime(df_long["date"], format="%d-%m-%Y")

# 4. 画布配置
plt.figure(figsize=(14, 6), dpi=100)
# 5. 绘制多折线,按ID区分
sns.lineplot(data=df_long, x="date", y="value", hue="ID", marker="o", linewidth=2)

# 6. X轴日期显示优化,避免标签重叠
plt.gca().xaxis.set_major_formatter(DateFormatter("%d-%m-%Y"))
# 日期太多可开启下一行配置,仅每周显示1个刻度
# plt.gca().xaxis.set_major_locator(mdates.WeekdayLocator(interval=1))
plt.xticks(rotation=45, ha="right")

# 7. 图表信息配置
plt.xlabel("日期")
plt.ylabel("数值")
plt.title("不同ID的时间序列变化折线图")
plt.legend(title="ID编号")
plt.tight_layout()
plt.show()

注意事项

  • 完整包含2018-02-01到2018-03-30所有日期的数据集可直接套用上述逻辑,无需修改转换规则
  • 可在sns.lineplot中添加palette、style参数自定义折线的颜色、线型

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.22 04:06:11