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

如何用Matplotlib将DataFrame的LOC列作为标注添加到时间序列图?

实现带LOC文本标注的时间序列图

以下是具体实现步骤和代码示例:

1. 数据预处理

首先需要将DATE列转换为Pandas的datetime类型,确保Matplotlib能正确识别时间轴:

import pandas as pd
import matplotlib.pyplot as plt

# 构造示例数据(已有DataFrame可直接使用)
data = {
    'DATE': ['2018-02-24', '2020-06-01', '2021-07-25', '2022-09-16', '2023-11-08'],
    'LOC': ['ANA#1', 'ANH#2', 'ANO#1', 'ANS#2', 'ANM#1'],
    'Y_DATA': [12, 25, 18, 30, 22]  # 模拟Y轴数据,替换为你的实际数据
}
df = pd.DataFrame(data)

# 转换DATE列为datetime类型
df['DATE'] = pd.to_datetime(df['DATE'])

2. 绘制基础时间序列图

以DATE为X轴,目标数据为Y轴绘制折线图:

plt.figure(figsize=(10, 6))
plt.plot(df['DATE'], df['Y_DATA'], marker='o', linestyle='-', color='b')
plt.xlabel('日期')
plt.ylabel('Y轴数据')
plt.title('带LOC标注的时间序列图')
plt.grid(True)

3. 添加LOC文本标注

遍历DataFrame的每一行,用plt.annotate()将LOC内容标注到对应日期和Y值的位置:

# 遍历添加标注
for idx, row in df.iterrows():
    # xy指定标注坐标,xytext设置文本偏移避免遮挡数据点
    plt.annotate(
        row['LOC'],
        xy=(row['DATE'], row['Y_DATA']),
        xytext=(5, 5),  # 文本相对于数据点的偏移(右5,上5)
        textcoords='offset points',
        fontsize=10,
        color='darkred'
    )

# 自动调整X轴日期标签格式,避免重叠
plt.gcf().autofmt_xdate()
plt.show()

关键说明

  • xytext参数可根据实际情况调整偏移量,防止标注和数据点、其他标注重叠;
  • 若Y轴数据范围较大,也可将标注固定在Y轴最大值上方,只需修改xy的Y值即可;
  • autofmt_xdate()用于自动旋转X轴日期标签,提升可读性。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 16:22:09