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

如何解读Matplotlib中日期时间刻度的数值化结果

这些数值的含义:Matplotlib的日期时间内部存储格式

这些浮点数是Matplotlib用来内部存储日期时间的数值表示,本质是从1900年1月1日00:00开始累计的总天数:

  • 整数部分:从1900-01-01到目标日期的完整天数
  • 小数部分:目标时间在当天的占比(比如0.5对应中午12点,0.25对应早上6点)

对应你的例子验证

拿第一个刻度值15880.46527778来说:

  1. 整数部分15880:从1900-01-01往后数15880天,正好是2013-06-24
  2. 小数部分0.46527778:乘以24小时得到≈11.1667小时,也就是11小时10分钟,刚好对应你设置的x轴起始时间dt.datetime(2013,6,24,11,10)

你可以用这段代码验证转换逻辑:

import datetime as dt
base_date = dt.datetime(1900, 1, 1)
# 取首尾两个刻度值验证
for tick_val in [15880.46527778, 15880.47222222]:
    target_datetime = base_date + dt.timedelta(days=tick_val)
    print(target_datetime)

输出会对应你设置的x轴起止时间:2013-06-24 11:10:00和2013-06-24 11:20:00左右。

为什么用这种格式?

Matplotlib底层是基于数值的绘图系统,把日期时间转成浮点数后,能方便地进行坐标轴缩放、数据计算等操作。你看到的11:13这类时间文本,只是Matplotlib对这些数值做了格式化显示,轴的底层数值始终是累计天数。如果需要把这些数值转回datetime对象,用上面的timedelta方法即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 09:12:37