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

Python读取多CSV文件绘图时其余曲线不显示、X轴混乱问题求解

问题原因及解决方法

核心问题根因

  • X轴显示混乱:你调用pd.read_csv时用parse_dates把Time Stamp列转换为了datetime时间类型,但你后续通过plt.xlim(left=500, right=1600)设置的是数值型范围,二者完全不匹配,导致X轴刻度逻辑混乱。
  • 另外两组数据不显示:有两种可能:
    1. 另外两组的时间戳转换后的值不在你设置的500~1600错误X轴范围内,被直接截断
    2. 另外两组的功率值不在你设置的43.8~44.1Y轴范围内,或读取Power (dBm)列时因为列名不匹配出现空值,导致没有可绘制的有效数据

具体解决步骤

  1. 修正时间轴格式
    如果你需要X轴显示的是相对起始时间的秒数(和你设置的X轴单位标签Time (s)匹配),不要直接用datetime类型,将时间列转换为相对秒数:
# 对三个df的时间列做相同转换
time1 = (df1["Time Stamp"] - df1["Time Stamp"].iloc[0]).dt.total_seconds()
time2 = (df2["Time Stamp"] - df2["Time Stamp"].iloc[0]).dt.total_seconds()
time3 = (df3["Time Stamp"] - df3["Time Stamp"].iloc[0]).dt.total_seconds()
  1. 先确认数据范围再设置坐标轴边界
    先注释掉plt.xlim和plt.ylim两行代码运行,查看三组数据的完整分布,确认所有数据的时间、功率范围后再设置合理的边界值,避免截断有效数据。
  2. 检查列名匹配性
    你代码中读取功率列用的列名是' Power (dBm)'(前导有空格),确认三个CSV文件的对应列是否都有相同的前导空格,避免因列名不匹配读取到空值。可以临时加打印校验:
print(df2[' Power (dBm)'].isna().sum())
print(df3[' Power (dBm)'].isna().sum())

如果输出大于0说明列名不匹配或数据本身有空值,需要调整列名读取规则。
4. 优化X轴刻度显示
如果后续刻度出现重叠,可以添加一行plt.xticks(rotation=45)让刻度倾斜显示,避免拥挤。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 10:15:02