如何在Python中正确索引数据并按日期绘制双曲线图

实现步骤与代码示例
依赖安装(未安装对应库先执行)
pip install pandas matplotlib
完整可运行代码
import pandas as pd import matplotlib.pyplot as plt # 1. 加载并预处理数据 # 表格数据用这个逻辑,Excel文件替换为pd.read_excel即可 df = pd.read_csv("你的数据文件路径.csv") # 替换为你数据里的日期列名,转换为时间格式方便索引匹配 df["date"] = pd.to_datetime(df["date"]) # 拿到所有去重的待绘图日期列表 date_list = df["date"].unique() # 2. 按日期循环绘图 for cur_date in date_list: # 按日期索引筛选单日数据,默认会匹配到该日期对应的4条记录 day_df = df[df["date"] == cur_date] # 替换为你实际的x轴列、两条曲线对应的数值列名 x = day_df["x轴取值列"] y_line1 = day_df["第一条曲线数值列"] y_line2 = day_df["第二条曲线数值列"] # 绘图逻辑 plt.figure(figsize=(7, 4)) plt.plot(x, y_line1, label="曲线1名称", marker="o") plt.plot(x, y_line2, label="曲线2名称", marker="s") plt.title(f"日期:{cur_date.strftime('%Y-%m-%d')}") plt.xlabel("x轴标签") plt.ylabel("数值标签") plt.legend() # 可选:自动按日期命名保存图片到当前文件夹 plt.savefig(f"{cur_date.strftime('%Y%m%d')}_曲线图.png", dpi=100, bbox_inches="tight") plt.show()
异常排查点
- 如果索引筛选出来的单日数据不是4条,先检查日期列的格式是否统一,有没有多余空格、中英文符号混用的问题
- 如果是纯列表格式的数据源(未存为表格),直接按索引位置对应即可:假设
date_list[i]对应的数据是data[i],其中data[i]包含4个x值和2组y值,循环按i取数绘图即可
内容的提问来源于stack exchange,提问作者user17050749
相关产品推荐
相关产品推荐

