Python 试图用Lowess平滑datetime
我有4个数据帧,我用移动平均线绘制。我已经附上了下面输出图的图像以及上面的代码Python 试图用Lowess平滑datetime,python,matplotlib,decimal,Python,Matplotlib,Decimal,我有4个数据帧,我用移动平均线绘制。我已经附上了下面输出图的图像以及上面的代码 plt.figure(figsize = (16,6)) plt.plot(df_testy2.date, df_testy2.pandas_SMA_3, label = "bj") plt.plot(df_testyhd2.date, df_testyhd2.pandas_SMA_3, label = 'hd') plt.plot(df_testybr2.date, df_testybr2.pa
plt.figure(figsize = (16,6))
plt.plot(df_testy2.date, df_testy2.pandas_SMA_3, label = "bj")
plt.plot(df_testyhd2.date, df_testyhd2.pandas_SMA_3, label = 'hd')
plt.plot(df_testybr2.date, df_testybr2.pandas_SMA_3, label = 'breyers')
plt.plot(df_testytal2.date, df_testytal2.pandas_SMA_3, label = 'talenti')
plt.legend()
plt.show()
正如你所看到的,我得到了我想要的结果,但它看起来非常参差不齐。我想试着用洛斯来抚平这条线。目前,我正在尝试使用以下其中一行代码:
import matplotlib.pyplot as plt
import statsmodels.api as sm
import numpy as np
from decimal import Decimal
plt.figure(figsize = (16,6))
x = df_testy2.date
y = df_testy2.pandas_SMA_3
# z = sm.nonparametric.lowess(y, x, frac= 1./3, it=3)
z = sm.nonparametric.lowess(y, x)
plt.plot(x, y, color='dodgerblue')
plt.plot(z[:,0], z[:,1], 'ro-')
plt.show()
但是,我得到了以下错误:
溢出错误:int太大,无法转换
我尝试使用Decimal(),因为我读到了可以修复它的内容,但我不知道在代码中应该在哪里使用Decimal(),或者它是否可以工作
请帮忙
谢谢