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

求助:使用Matplotlib将CSV时序数据与Excel泄漏日期同图绘制

解决方案

1. 先装必要依赖(未安装的话)

执行命令安装所需库:

pip install pandas matplotlib openpyxl

2. 完整实现代码

import pandas as pd
import matplotlib.pyplot as plt

# 1. 加载并预处理数据
# 读取CSV传感器时序数据,替换成你的文件名,确保日期列名正确
df_sensor = pd.read_csv('传感器数据.csv', parse_dates=['日期'], index_col='日期')
# 读取Excel泄漏日期数据,替换成你的文件名,日期列名对应调整
df_leak = pd.read_excel('泄漏日期记录.xlsx', parse_dates=['泄漏日期'])
leak_dates = df_leak['泄漏日期'].tolist()

# 2. 绘制图表
fig, ax = plt.subplots(figsize=(12, 6))
# 画传感器时序折线图
df_sensor.plot(ax=ax, rot=45, title='传感器数据与泄漏点标记')

# 逐个标记泄漏日期:红色虚线+顶部标注
for date in leak_dates:
    ax.axvline(x=date, color='red', linestyle='--', alpha=0.7)
    ax.text(date, ax.get_ylim()[1], '泄漏', ha='center', va='top', color='red', fontsize=10)

# 设置轴标签
ax.set_xlabel('日期')
ax.set_ylabel('传感器数值')

# 自动调整布局,避免日期标签挤在一起
plt.tight_layout()
plt.show()

关键注意点

  • 日期解析必须正确:CSV和Excel里的日期列一定要用parse_dates参数解析成datetime类型,否则时间轴对不上,标记会错位。如果你的日期列名不是日期/泄漏日期,要对应修改代码里的列名。
  • 时间精度对齐:如果传感器数据带时分秒,而泄漏日期只有日期,就把两者都转成日期格式:
    # 传感器索引转成日期
    df_sensor.index = df_sensor.index.date
    # 泄漏日期转成日期
    df_leak['泄漏日期'] = df_leak['泄漏日期'].dt.date
    leak_dates = df_leak['泄漏日期'].tolist()
    
  • 样式自定义:可以改虚线颜色(比如color='orange')、线型(比如linestyle=':'),或者把标注放在其他位置,根据你的需求调整。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 23:40:42