docstr: Display a shap force_plot for one target and one horizon, for a given foreground_series.
  It displays shap values of each lag/covariate with an additive force layout.
  
  Once the plot is displayed, select "original sample ordering"
  to observe the time series chronologically.
  
  Parameters
  ----------
  foreground_series
      Optionally, the target series to explain. Can be multivariate. If `None`, will use the `background_series`.
  foreground_past_covariates
      Optionally, a past covariate series if required by the forecasting model. If `None`, will use the
      `background_past_covariates`.
  foreground_future_covariates
      Optionally, a future covariate series if required by the forecasting model. If `None`, will use the
      `background_future_covariates`.
  horizon
      Optionally, an integer for the point/step in the future to explain, starting from the first prediction
      step at 1. `horizons` must not be larger than `output_chunk_length`.
  target_component
      Optionally, the target component to plot. If the target series is multivariate, the target component
      must be specified.
  **kwargs
      Optionally, additional keyword arguments passed to `shap.force_plot()`.
docstr_tok: ["Display","a","shap","force_plot","for","one","target","and","one","horizon",",","for","a","given","foreground_series",".","It","displays","shap","values","of","each","lag\/covariate","with","an","additive","force","layout",".","Once","the","plot","is","displayed",",","select","``","original","sample","ordering","''","to","observe","the","time","series","chronologically",".","Parameters","--","--","--","--","--","foreground_series","Optionally",",","the","target","series","to","explain",".","Can","be","multivariate",".","If","`","None","`",",","will","use","the","`","background_series","`",".","foreground_past_covariates","Optionally",",","a","past","covariate","series","if","required","by","the","forecasting","model",".","If","`","None","`",",","will","use","the","`","background_past_covariates","`",".","foreground_future_covariates","Optionally",",","a","future","covariate","series","if","required","by","the","forecasting","model",".","If","`","None","`",",","will","use","the","`","background_future_covariates","`",".","horizon","Optionally",",","an","integer","for","the","point\/step","in","the","future","to","explain",",","starting","from","the","first","prediction","step","at","1",".","`","horizons","`","must","not","be","larger","than","`","output_chunk_length","`",".","target_component","Optionally",",","the","target","component","to","plot",".","If","the","target","series","is","multivariate",",","the","target","component","must","be","specified",".","*","*","kwargs","Optionally",",","additional","keyword","arguments","passed","to","`","shap.force_plot","(",")","`","."]
code: def force_plot_from_ts(
      self,
      foreground_series: Optional[TimeSeries] = None,
      foreground_past_covariates: Optional[TimeSeries] = None,
      foreground_future_covariates: Optional[TimeSeries] = None,
      horizon: Optional[int] = 1,
      target_component: Optional[str] = None,
      **kwargs,
  ):
      """
      Display a shap force_plot for one target and one horizon, for a given foreground_series.
      It displays shap values of each lag/covariate with an additive force layout.
  
      Once the plot is displayed, select "original sample ordering"
      to observe the time series chronologically.
  
      Parameters
      ----------
      foreground_series
          Optionally, the target series to explain. Can be multivariate. If `None`, will use the `background_series`.
      foreground_past_covariates
          Optionally, a past covariate series if required by the forecasting model. If `None`, will use the
          `background_past_covariates`.
      foreground_future_covariates
          Optionally, a future covariate series if required by the forecasting model. If `None`, will use the
          `background_future_covariates`.
      horizon
          Optionally, an integer for the point/step in the future to explain, starting from the first prediction
          step at 1. `horizons` must not be larger than `output_chunk_length`.
      target_component
          Optionally, the target component to plot. If the target series is multivariate, the target component
          must be specified.
      **kwargs
          Optionally, additional keyword arguments passed to `shap.force_plot()`.
      """
  
      raise_if(
          target_component is None and len(self.target_components) > 1,
          "The component parameter is required when the model has more than one component.",
      )
  
      if target_component is None:
          target_component = self.target_components[0]
  
      (
          foreground_series,
          foreground_past_covariates,
          foreground_future_covariates,
          _,
          _,
          _,
          _,
      ) = self._process_foreground(
          foreground_series,
          foreground_past_covariates,
          foreground_future_covariates,
      )
      horizons, target_components = self._process_horizons_and_targets(
          horizon,
          target_component,
      )
      horizon, target_component = horizons[0], target_components[0]
  
      foreground_X = self.explainers._create_regression_model_shap_X(
          foreground_series,
          foreground_past_covariates,
          foreground_future_covariates,
      )
  
      shap_ = self.explainers.shap_explanations(
          foreground_X, [horizon], [target_component]
      )
  
      return shap.force_plot(
          base_value=shap_[horizon][target_component],
          features=foreground_X,
          out_names=target_component,
          **kwargs,
      )
  
imports: from enum import Enum
  from typing import Dict, NewType, Optional, Sequence, Union
  import matplotlib.pyplot
  import pandas
  import shap
  from sklearn.multioutput import MultiOutputRegressor
  from darts import TimeSeries
  from darts.explainability.explainability import _ForecastingModelExplainer
  from darts.explainability.explainability_result import ShapExplainabilityResult
  from darts.logging import get_logger, raise_if, raise_log
  from darts.models.forecasting.regression_model import RegressionModel
  from darts.utils.data.tabularization import create_lagged_prediction_data
label_desc: Use image node_id 4 for calling the ShapExplainer obj's underlying member method code with example usage: obj.force_plot_from_ts(foreground_series, foreground_past_covariates, foreground_future_covariates, horizon, target_component) and returns: shap