code: def plot_prophet(dft, forecastdf):
      """
      This is a different way of plotting Prophet charts as described in the following article:
      Source: https://nextjournal.com/viebel/forecasting-time-series-data-with-prophet
      Reproduced with gratitude to the author.
      """
      dft = copy.deepcopy(dft)
      forecastdf = copy.deepcopy(forecastdf)
      dft.set_index("ds", inplace=True)
      forecastdf.set_index("ds", inplace=True)
      dft.index = pd.to_datetime(dft.index)
      connect_date = dft.index[-2]
      mask = forecastdf.index > connect_date
      predict_df = forecastdf.loc[mask]
      viz_df = dft.join(
          predict_df[["yhat", "yhat_lower", "yhat_upper"]], how="outer"
      )
      _, ax1 = plt.subplots(figsize=(20, 10))
      ax1.plot(viz_df["y"], color="red")
      ax1.plot(viz_df["yhat"], color="green")
      ax1.fill_between(
          viz_df.index,
          viz_df["yhat_lower"],
          viz_df["yhat_upper"],
          alpha=0.2,
          color="darkgreen",
      )
      ax1.set_title("Actual (Red) vs Forecast (Green)")
      ax1.set_ylabel("Values")
      ax1.set_xlabel("Date Time")
      plt.show(block=False)
      return viz_df
  
imports: from typing import Optional
  import logging
  import copy
  import time
  import numpy
  from sklearn.model_selection import TimeSeriesSplit
  import pandas
  from pandas.core.generic import NDFrame
  import pdb
  import dask
  import dask.dataframe
  import matplotlib.pyplot
  from prophet import Prophet
  from prophet.diagnostics import cross_validation
  from prophet.diagnostics import performance_metrics
  from prophet.plot import plot_cross_validation_metric
  from .build_base import BuildBase
  from ..utils import print_dynamic_rmse, quick_ts_plot, print_ts_model_stats
  from ..utils.logging import SuppressStdoutStderr
  from sklearn.metrics import mean_squared_error
  from prophet import Prophet
  import time
  import pdb
  import copy
  import matplotlib.pyplot
label_desc: Use image node_id 1 for calling a global function with example usage: plot_prophet(dft, forecastdf) and returns: viz_df