code: def plot_optimization_history(
      study: Study | Sequence[Study],
      *,
      target: Callable[[FrozenTrial], float] | None = None,
      target_name: str = "Objective Value",
      error_bar: bool = False,
  ) -> "Axes":
      """Plot optimization history of all trials in a study with Matplotlib.
  
      .. seealso::
          Please refer to :func:`optuna.visualization.plot_optimization_history` for an example.
  
      Example:
  
          The following code snippet shows how to plot optimization history.
  
          .. plot::
  
              import optuna
              import matplotlib.pyplot as plt
  
  
              def objective(trial):
                  x = trial.suggest_float("x", -100, 100)
                  y = trial.suggest_categorical("y", [-1, 0, 1])
                  return x ** 2 + y
  
              sampler = optuna.samplers.TPESampler(seed=10)
              study = optuna.create_study(sampler=sampler)
              study.optimize(objective, n_trials=10)
  
              optuna.visualization.matplotlib.plot_optimization_history(study)
              plt.tight_layout()
  
          .. note::
              You need to adjust the size of the plot by yourself using ``plt.tight_layout()`` or
              ``plt.savefig(IMAGE_NAME, bbox_inches='tight')``.
      Args:
          study:
              A :class:`~optuna.study.Study` object whose trials are plotted for their target values.
              You can pass multiple studies if you want to compare those optimization histories.
  
          target:
              A function to specify the value to display. If it is :obj:`None` and ``study`` is being
              used for single-objective optimization, the objective values are plotted.
  
              .. note::
                  Specify this argument if ``study`` is being used for multi-objective optimization.
          target_name:
              Target's name to display on the axis label and the legend.
  
          error_bar:
              A flag to show the error bar.
  
      Returns:
          A :class:`matplotlib.axes.Axes` object.
      """
  
      _imports.check()
  
      info_list = _get_optimization_history_info_list(
          study, target, target_name, error_bar
      )
      return _get_optimization_history_plot(info_list, target_name)
  
file_path: optuna/optuna/visualization/matplotlib/_optimization_history.py
imports: from __future__ import annotations
  from collections.abc import Callable
  from collections.abc import Sequence
  import numpy
  from optuna._experimental import experimental_func
  from optuna.logging import get_logger
  from optuna.study import Study
  from optuna.trial import FrozenTrial
  from optuna.visualization._optimization_history import _get_optimization_history_info_list
  from optuna.visualization._optimization_history import _OptimizationHistoryInfo
  from optuna.visualization._optimization_history import _ValueState
  from optuna.visualization.matplotlib._matplotlib_imports import _imports
label_desc: Use image node_id 1 for calling a global function with example usage: plot_optimization_history(study) and returns: _get_optimization_history_plot