code: def interact_cross_validation_plotly(
      cv_results: List[CVResult],
      show_context: bool = True,
      caption: str = "",
      label_dict: Optional[Dict[str, str]] = None,
      autoset_axis_limits: bool = True,
  ) -> go.Figure:
      """Interactive cross-validation (CV) plotting; select metric via dropdown.
  
      Note: uses the Plotly version of dropdown (which means that all data is
      stored within the notebook).
  
      Args:
          cv_results: cross-validation results.
          show_context: if True, show context on hover.
          label_dict: optional map from real metric names to shortened names
          autoset_axis_limits: Automatically try to set the limit for each axis to focus
              on the region of interest.
  
      Returns a plotly.graph_objects.Figure
      """
      data = _get_cv_plot_data(cv_results, label_dict=label_dict)
      fig = _obs_vs_pred_dropdown_plot(
          data=data,
          rel=False,
          show_context=show_context,
          autoset_axis_limits=autoset_axis_limits,
      )
      current_bmargin = fig["layout"]["margin"].b or 90
      caption_height = 100 * (len(caption) > 0)
      fig["layout"]["margin"].b = current_bmargin + caption_height
      fig["layout"]["height"] += caption_height
      fig["layout"]["annotations"] += tuple(compose_annotation(caption))
      fig["layout"]["title"] = "Cross-validation"
      return fig
  
imports: from copy import deepcopy
  from typing import Any, Dict, List, Optional, Tuple
  import numpy
  import plotly.graph_objs
  from ax.core.batch_trial import BatchTrial
  from ax.core.data import Data
  from ax.core.experiment import Experiment
  from ax.core.multi_type_experiment import MultiTypeExperiment
  from ax.core.observation import Observation
  from ax.modelbridge.cross_validation import CVResult
  from ax.modelbridge.transforms.convert_metric_names import convert_mt_observations
  from ax.plot.base import AxPlotConfig, AxPlotTypes, PlotData, PlotInSampleArm, PlotMetric, Z
  from ax.plot.helper import compose_annotation
  from ax.plot.scatter import _error_scatter_data, _error_scatter_trace
  from ax.utils.common.typeutils import not_none
  from plotly import subplots
label_desc: Use image node_id 7 for calling a global function with example usage: interact_cross_validation_plotly(cv_results, show_context, caption, label_dict, autoset_axis_limits) and returns: fig