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

Matplotlib设置X轴为datetime类型时触发OverflowError的问题求助

Matplotlib设置X轴为datetime类型时触发OverflowError的问题求助

我在Matplotlib里把X轴数据设置为datetime类型时遇到了麻烦,想请教大家怎么解决。

我的数据是这样的(Pandas DataFrame格式):

timestamp_group_start           date_time  avg_11006  avg_53119  avg_11995  avg_37595  avg_42740  avg_56826

0               1670104020 2022-12-03 22:47:00  18.246300  17.873331  19.998333  20.123986  18.661029  20.186845

1               1670104080 2022-12-03 22:48:00  18.246300  17.873331  19.994792  20.123986  18.686012  20.211735

2               1670104140 2022-12-03 22:49:00  18.246300  17.873331  20.024194  20.123986  18.686012  20.248527

3               1670104200 2022-12-03 22:50:00  18.246300  17.873331  20.013761  20.123986  18.686012  20.248527

4               1670104260 2022-12-03 22:51:00  18.246300  17.873331  20.062500  20.123986  18.686012  20.248527

..                     ...                 ...        ...        ...        ...        ...        ...        ...

256             1670119380 2022-12-04 03:03:00  19.311873  19.024235  21.000000  21.061362  20.000000  21.123863

257             1670119440 2022-12-04 03:04:00  19.311873  19.017045  21.000000  21.061362  20.062500  21.123863

258             1670119500 2022-12-04 03:05:00  19.311873  19.051306  21.000000  21.061362  20.062500  21.123863

259             1670119560 2022-12-04 03:06:00  19.311873  19.062042  21.003440  21.061362  20.062500  21.123863

260             1670119620 2022-12-04 03:07:00  19.375000  20.250000  21.125000  21.687500  20.875000  21.687500

我的需求是把所有以avg开头的列做成散点图,并且把X轴设置为datetime类型。

当我用整数类型的时间戳列timestamp_group_start作为X轴数据时,代码运行完全正常:

axs.scatter(
    temps["timestamp_group_start"],
    temps[col_name],
)

但当我改成用date_time列作为X轴数据时:

axs.scatter(
    temps["date_time"],
    temps[col_name],
)

就触发了如下错误:

File "D:\Documents\Projects\project_name.venv\Lib\site-packages\matplotlib\dates.py", line 359, in _from_ordinalf
np.timedelta64(int(np.round(x * MUSECONDS_PER_DAY)), 'us'))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
OverflowError: int too big to convert

补充一下,data["date_time"]里的每个元素类型是<class 'pandas._libs.tslibs.timestamps.Timestamp'>。

我之前看过相关的问题讨论,但里面的解决方案好像对我的情况不适用。


编辑补充:
我找到问题根源了!原来是plt.xlim(timestamp_start, timestamp_end)这行代码在搞鬼!删掉这行之后,用date_time作为X轴数据完全正常运行了。我还得琢磨一下为什么设置X轴范围会引发这个错误,但至少现在能正常绘图了。

感谢各位的建议!

备注:内容来源于stack exchange,提问作者zorka5

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.22 08:39:54