code: def plot_forecast_component(
      fcst,
      comp_name,
      plot_name=None,
      ax=None,
      figsize=(10, 6),
      multiplicative=False,
      bar=False,
      rolling=None,
      add_x=False,
      fill=False,
  ):
      """Plot a particular component of the forecast.
  
      Parameters
      ----------
          fcst : pd.DataFrame
              Output of m.predict
          comp_name : str
              Name of the component to plot
          plot_name : str
              Name of the plot Title
          ax : matplotlib axis
              Matplotlib Axes to plot on
          figsize : tuple
              Width, height in inches. Ignored if ax is not None
  
              Note
              ----
              Default value is set to ``figsize = (10, 6)``
          multiplicative : bool
              Set y axis as percentage
          bar : bool
              Make barplot
          rolling : int
              Rolling average underplot
          add_x : bool
              Add x symbols to plotted points
          fill: bool
              Add fill between signal and x(y=0) axis
  
      Returns
      -------
          matplotlib.artist.Artist
              List of Artist objects containing a particular forecast component
      """
      fcst = fcst.fillna(value=np.nan)
      artists = []
      if not ax:
          fig = plt.figure(facecolor="w", figsize=figsize)
          ax = fig.add_subplot(111)
      fcst_t = fcst["ds"].dt.to_pydatetime()
      if rolling is not None:
          rolling_avg = (
              fcst[comp_name]
              .rolling(rolling, min_periods=1, center=True)
              .mean()
          )
          if bar:
              artists += ax.bar(
                  fcst_t,
                  rolling_avg,
                  width=1.00,
                  color="#0072B2",
                  alpha=0.5,
              )
          else:
              artists += ax.plot(
                  fcst_t,
                  rolling_avg,
                  ls="-",
                  color="#0072B2",
                  alpha=0.5,
              )
              if add_x:
                  artists += ax.plot(fcst_t, fcst[comp_name], "bx")
      if "uncertainty" in plot_name.lower():
          y = fcst[comp_name].values - fcst["yhat1"].values
          label = comp_name
      else:
          y = fcst[comp_name].values
          label = None
      if bar:
          artists += ax.bar(fcst_t, y, width=1.00, color="#0072B2")
      elif "uncertainty" in plot_name.lower() and fill:
          ax.fill_between(
              fcst_t, 0, y, alpha=0.2, label=label, color="#0072B2"
          )
      else:
          artists += ax.plot(fcst_t, y, ls="-", c="#0072B2")
          if add_x or sum(fcst[comp_name].notna()) == 1:
              artists += ax.plot(fcst_t, y, "bx")
      # Specify formatting to workaround matplotlib issue #12925
      locator = AutoDateLocator(interval_multiples=False)
      formatter = AutoDateFormatter(locator)
      ax.xaxis.set_major_locator(locator)
      ax.xaxis.set_major_formatter(formatter)
      ax.grid(True, which="major", c="gray", ls="-", lw=1, alpha=0.2)
      ax.set_xlabel("ds")
      if plot_name is None:
          plot_name = comp_name
      ax.set_ylabel(plot_name)
      if multiplicative:
          ax = set_y_as_percent(ax)
      handles, labels = ax.axes.get_legend_handles_labels()
      ax.legend(handles, labels)
      return ax
  
file_path: neural_prophet/neuralprophet/plot_forecast_matplotlib.py
imports: import logging
  import numpy
  from neuralprophet.plot_model_parameters_matplotlib import plot_custom_season, plot_daily, plot_weekly, plot_yearly
  from neuralprophet.plot_utils import set_y_as_percent
label_desc: Use image node_id 3 for calling a global function with example usage: plot_forecast_component(fcst, comp_name, plot_name, ax, figsize, multiplicative, bar, rolling, add_x, fill) and returns: ax