Matplotlib绘图失败,但散布成功,数据相同

2024-05-18 20:53:50 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试使用matplotlib制作各种熊猫系列的情节

这很好:plt.scatter(ahi_m['Time'], ahi_m['Min'])

但这会导致一个错误:plt.plot(ahi_m['Time'], ahi_m['Min'])

下面是来自plt.plot的错误:

    343     dt = (np.datetime64(get_epoch()) +
--> 344           np.timedelta64(int(np.round(x * MUSECONDS_PER_DAY)), 'us'))
    345     if dt < np.datetime64('0001-01-01') or dt >= np.datetime64('10000-01-01'):
    346         raise ValueError(f'Date ordinal {x} converts to {dt} (using '
OverflowError: int too big to convert

我不明白为什么plot失败而scatter成功。x和y变量都是熊猫系列ahi_m['Time']具有数据类型datetime64[ns],而ahi_m['Min']具有数据类型float64

你知道这里发生了什么,更重要的是,怎么解决吗?我认为这与datetime变量在ns中有关,因此是一个非常大的数字。我能转换它吗

(编辑)更新:如果我将ahi_m['Time']转换为numpy数组,那么它可以工作: plt.plot(np.array(ahi_m['Time']), np.array(ahi_m['Min']))

但知道原因还是很好的。这是熊猫还是小虫

谢谢


Tags: totimeplot错误npdtpltmin

热门问题