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

Matplotlib散点图Datetime X轴刻度重复问题排查

问题分析:Matplotlib绘制Datetime散点图时X轴刻度重复的原因

问题背景

我在Pandas DataFrame中存储了每日计算得到的日间和夜间心率均值,数据结构及类型如下:

数据示例:

date     FC_mean_day    FC_mean_night
0   2022-12-28    79.43             74.11
1   2022-12-29    74.25             75.00
2   2022-12-30    75.75             74.40
3   2022-12-31    70.91             72.90
4   2023-01-01    68.43             73.00

数据类型:

date             datetime64[ns]
FC_mean_day             float64
FC_mean_night           float64
dtype: object

使用Matplotlib绘制散点图后,出现X轴Datetime刻度重复的问题;但当DataFrame中存在某行夜间心率为NaN时,刻度重复问题消失。

原因解析

核心逻辑

这是因为无NaN时,Matplotlib会为两组数据(日间、夜间心率)分别生成X轴刻度,同一日期被重复渲染;而存在NaN时,对应行的数据点被跳过,两组数据的有效X轴日期不再完全匹配,Matplotlib的自动刻度逻辑会合并重复日期,避免重复显示。

具体拆解

  • 绘制散点图时,你应该是将FC_mean_day和FC_mean_night作为两个独立的Y轴系列,共享同一个X轴(date列)。当所有日期的两组数据都非空时,Matplotlib会为每个系列的每个日期创建独立的刻度标记——虽然日期值相同,但底层是两个刻度对象,最终X轴上同一日期会重复显示。
  • 当某行存在NaN时,该行不会生成对应的数据点,两组数据的X轴日期集合出现差异。此时Matplotlib在自动生成刻度时,会对所有可见的X轴值进行去重处理,最终每个日期只显示一次刻度。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 02:23:12