Python 两行之间的Matplotlib Fill_

Python 两行之间的Matplotlib Fill_,python,matplotlib,Python,Matplotlib,早上好,我正在尝试使用Matplotlib在两行之间填充_,我是这样做的: plt.figure(figsize = (16,8)); plt.plot(estudo_df["Sales"], label='Original Data'); plt.plot(forecast_2018["yhat"], color='red', label='Predictions'); plt.plot(forecast_2018["yhat_lower&qu

早上好,我正在尝试使用Matplotlib在两行之间填充_,我是这样做的:

plt.figure(figsize = (16,8));
plt.plot(estudo_df["Sales"], label='Original Data');
plt.plot(forecast_2018["yhat"], color='red', label='Predictions');
plt.plot(forecast_2018["yhat_lower"], color='green', label='Predictions Lower');
plt.plot(forecast_2018["yhat_upper"], color='Blue', label='Predictions Blue');
plt.fill_between(forecast_2018["yhat_lower"],forecast_2018["yhat_upper"] , color='grey', alpha='0.5')
plt.legend();
plt.title('Forecast Sales Prophet - '+sh);
plt.xlabel('Date');
plt.ylabel('Sales');
但它不起作用

我使用两个具有相同金额和“索引ID”的DS,即日期estudo_df和forecast_2018


有人知道错误在哪里吗?

在两个地方更改代码:

  • 通过forecast_2018.index作为fill_的第一个参数
  • 将alpha参数更改为float(您传递了一个字符串)
我运行您的代码时只注释了一行:

plt.figure(figsize = (8, 6));
#plt.plot(estudo_df["Sales"], label='Original Data');
plt.plot(forecast_2018["yhat"], color='red', label='Predictions');
plt.plot(forecast_2018["yhat_lower"], color='green', label='Predictions Lower');
plt.plot(forecast_2018["yhat_upper"], color='blue', label='Predictions Blue');
plt.fill_between(forecast_2018.index, forecast_2018["yhat_lower"],
    forecast_2018["yhat_upper"], color='#DDDDDD', alpha=0.5)
plt.legend();
sh = 'xx'
plt.title('Forecast Sales Prophet - ' + sh)
plt.xlabel('Date')
plt.ylabel('Sales');
得到:


“我的数据框”的索引包含日期,但为字符串类型。

是否有错误?如果是,错误是什么?或者,它是否产生了一个不是你所期望的情节。。。如果您描述代码的结果,以及输出结果如何与您的预期不符,这将有助于其他人帮助您。我怀疑问题在于您没有给
x
值以
fill\u
。它们是必需的输入。因此,可能
plt.fill_介于(x=范围(len(预测2018年[“yhat_下”])、y1=预测2018年[“yhat_下”]、y2=预测2018年[“yhat_上”]、…)