code: def interact_fitted(
      model: ModelBridge,
      generator_runs_dict: TNullableGeneratorRunsDict = None,
      rel: bool = True,
      show_arm_details_on_hover: bool = True,
      show_CI: bool = True,
      arm_noun: str = "arm",
      metrics: Optional[List[str]] = None,
      fixed_features: Optional[ObservationFeatures] = None,
      data_selector: Optional[Callable[[Observation], bool]] = None,
      label_dict: Optional[Dict[str, str]] = None,
      scalarized_metric_config: Optional[List[Dict[str, Any]]] = None,
  ) -> AxPlotConfig:
      """Interactive fitted outcome plots for each arm used in fitting the model.
  
      Choose the outcome to plot using a dropdown.
  
      Args:
          model: model to use for predictions.
          generator_runs_dict: a mapping from
              generator run name to generator run.
          rel: if True, use relative effects. Default is True.
          show_arm_details_on_hover: if True, display
              parameterizations of arms on hover. Default is True.
          show_CI: if True, render confidence intervals.
          arm_noun: noun to use instead of "arm" (e.g. group)
          metrics: List of metric names to restrict to when plotting.
          fixed_features: Fixed features to use when making model predictions.
          data_selector: Function for selecting observations for plotting.
          label_dict: A dictionary that maps the label to
              an alias to be used in the plot.
          scalarized_metric_config: An optional list of dicts specifying how to aggregate
              multiple metrics into a single scalarized metric. For each dict, the key is
              the name of the new scalarized metric, and the value is a dictionary mapping
              each metric to its weight. e.g.
              {"name": "metric1:agg", "weight": {"metric1_c1": 0.5, "metric1_c2": 0.5}}.
      """
  
      return AxPlotConfig(
          data=interact_fitted_plotly(
              model=model,
              generator_runs_dict=generator_runs_dict,
              rel=rel,
              show_arm_details_on_hover=show_arm_details_on_hover,
              show_CI=show_CI,
              arm_noun=arm_noun,
              metrics=metrics,
              fixed_features=fixed_features,
              data_selector=data_selector,
              label_dict=label_dict,
              scalarized_metric_config=scalarized_metric_config,
          ),
          plot_type=AxPlotTypes.GENERIC,
      )
  
imports: import numbers
  import warnings
  from collections import OrderedDict
  from logging import Logger
  from typing import Any, Callable, Dict, Iterable, List, Optional, Sequence, Tuple, Union
  import numpy
  import plotly.graph_objs
  from ax.core.data import Data
  from ax.core.experiment import Experiment
  from ax.core.observation import Observation, ObservationFeatures
  from ax.modelbridge.base import ModelBridge
  from ax.modelbridge.registry import Models
  from ax.plot.base import AxPlotConfig, AxPlotTypes, CI_OPACITY, DECIMALS, PlotInSampleArm, PlotMetric, PlotOutOfSampleArm, Z
  from ax.plot.color import BLUE_SCALE, COLORS, DISCRETE_COLOR_SCALE, rgba
  from ax.plot.helper import _format_CI, _format_dict, _wrap_metric, arm_name_to_sort_key, arm_name_to_tuple, get_plot_data, infer_is_relative, resize_subtitles, TNullableGeneratorRunsDict
  from ax.utils.common.logger import get_logger
  from ax.utils.common.typeutils import checked_cast_optional
  from ax.utils.stats.statstools import relativize
  from plotly import subplots
label_desc: Use image node_id 13 for calling a global function with example usage: interact_fitted(model, generator_runs_dict, rel, show_arm_details_on_hover, show_CI, arm_noun, metrics, fixed_features, data_selector, label_dict, scalarized_metric_config) and returns: AxPlotConfig