code: def tile_observations(
      experiment: Experiment,
      data: Optional[Data] = None,
      rel: bool = True,
      metrics: Optional[List[str]] = None,
      arm_names: Optional[List[str]] = None,
      arm_noun: str = "arm",
      label_dict: Optional[Dict[str, str]] = None,
  ) -> AxPlotConfig:
      """
      Tiled plot with all observed outcomes.
  
      Will plot all observed arms. If data is provided will use that, otherwise
      will fetch data from experiment. Will plot all metrics in data unless a
      list is provided in metrics. If arm_names is provided will limit the plot
      to only arms in that list.
  
      Args:
          experiment: Experiment
          data: Data to use, otherwise will fetch data from experiment.
          rel: Plot relative values, if experiment has status quo.
          metrics: Limit results to this set of metrics.
          arm_names: Limit results to this set of arms.
          arm_noun: Noun to use instead of "arm".
          label_dict: A dictionary that maps the label to an alias to be used in the plot.
  
      Returns: Plot config for the plot.
      """
      if data is None:
          data = experiment.fetch_data()
      if arm_names is not None:
          data = Data(data.df[data.df["arm_name"].isin(arm_names)])
      m_ts = Models.THOMPSON(
          data=data,
          search_space=experiment.search_space,
          experiment=experiment,
      )
      return tile_fitted(
          model=m_ts,
          rel=rel and (experiment.status_quo is not None),
          metrics=metrics,
          arm_noun=arm_noun,
          label_dict=label_dict,
      )
  
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 14 for calling a global function with example usage: tile_observations(experiment, data, rel, metrics, arm_names, arm_noun, label_dict) and returns: tile_fitted