【发布时间】:2020-01-05 23:48:16
【问题描述】:
我正在尝试将曲线拟合为时间序列,如下所述:https://stackoverflow.com/a/17639070/12012445
如果我不导入 pandas 模块 - 一切都像魅力一样。 如果我这样做了,而且我必须这样做, - 我得到“'datetime.timezone' 对象没有属性 '_utcoffset'”
在我看来,问题在于绘图步骤是否返回多项式 p(x) 的系数,而多项式 p(x) 又取决于日期时间...
我经历了很多提示,包括Converting between datetime, Timestamp and datetime64
我很绝望(第 5 小时研究)
import pandas as pd #note that I'm not even calling it anywhere... so confused
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.dates as mdates
import datetime as dt
import time
dates = [dt.datetime(1978, 7, 7),
dt.datetime(1980, 9, 26),
dt.datetime(1983, 8, 1),
dt.datetime(1985, 8, 8)]
y = [0.00134328779552718,
0.00155187668863844,
0.0039431374327427,
0.00780037563783297]
yerr = [0.0000137547160254577,
0.0000225670232594083,
0.000105623642510075,
0.00011343121508]
x = mdates.date2num(dates)
z4 = np.polyfit(x, y, 3)
p4 = np.poly1d(z4)
fig, cx = plt.subplots()
xx = np.linspace(x.min(), x.max(), 100)
dd = mdates.num2date(xx)
cx.plot(dd, p4(xx), '-g')
cx.plot(dates, y, '+', color='b', label='blub')
cx.errorbar(dates, y,
yerr,
marker='.',
color='k',
ecolor='b',
markerfacecolor='b',
label="series 1",
capsize=0,
linestyle='')
cx.grid()
cx.set_ylim(0, 0.03)
plt.show()
期待:
【问题讨论】:
标签: python pandas numpy datetime matplotlib