Python 如何使用Prophet plot功能在x轴上显示小时
我想在Prophet forecast绘图中使用更精细的时间序列,特别是x轴上的一个小时粒度,以获得一些帮助。Python 如何使用Prophet plot功能在x轴上显示小时,python,facebook-prophet,Python,Facebook Prophet,我想在Prophet forecast绘图中使用更精细的时间序列,特别是x轴上的一个小时粒度,以获得一些帮助。 我的数据是每天每小时汇总的。除了聚合数据外,我还创建了必要的Prophet变量,包括: ads_mod['y'] = ads_mod[target1] ads_mod['ds'] = ads_mod['hour'] 然后,我开始建模过程: m = Prophet(interval_width=interval_width) m.add_seasonality(name='hourly
我的数据是每天每小时汇总的。除了聚合数据外,我还创建了必要的Prophet变量,包括:
ads_mod['y'] = ads_mod[target1]
ads_mod['ds'] = ads_mod['hour']
然后,我开始建模过程:
m = Prophet(interval_width=interval_width)
m.add_seasonality(name='hourly', period=1, fourier_order=30)
m.fit(ads_mod)
future = m.make_future_dataframe(periods=1,freq='H')
forecast = m.predict(future)
我用以下公式绘制预测:
fig = m.plot(forecast)
我已经查看了plot函数中的实际代码,并尝试了各种修改以在x轴上显示小时和日期(即datetime值),但没有成功。
特别是,我查看了日期转换:
fcst_t = fcst['ds'].dt.to_pydatetime()
转换后,我看到我的数据现在是以下格式,其中仍然包括小时。
下面是一段绘图,您可以看到,在x轴上,日期(即YYYY、MM、DD)是唯一显示的值:
fcst_t[:10]
Out[277]:
array([datetime.datetime(2019, 12, 2, 0, 0),
datetime.datetime(2019, 12, 2, 1, 0),
datetime.datetime(2019, 12, 2, 2, 0),
datetime.datetime(2019, 12, 2, 3, 0),
datetime.datetime(2019, 12, 2, 4, 0),
datetime.datetime(2019, 12, 2, 5, 0),
datetime.datetime(2019, 12, 2, 6, 0),
datetime.datetime(2019, 12, 2, 7, 0),
datetime.datetime(2019, 12, 2, 8, 0),
datetime.datetime(2019, 12, 2, 9, 0)], dtype=object)
。。。。此处有其他绘图代码
hours = mdates.HourLocator(interval = 1)
h_fmt = mdates.DateFormatter('%Y-%m-%d %H:%M:%S')
ax.xaxis.set_major_locator(hours)
ax.xaxis.set_major_formatter(h_fmt)
以下是链接:$
hours = mdates.HourLocator(interval = 1)
h_fmt = mdates.DateFormatter('%Y-%m-%d %H:%M:%S')
ax.xaxis.set_major_locator(hours)
ax.xaxis.set_major_formatter(h_fmt)