code: def plot_hypervolume_history(
      study: Study,
      reference_point: Sequence[float],
  ) -> "Axes":
      """Plot hypervolume history of all trials in a study with Matplotlib.
  
      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", 0, 5)
                  y = trial.suggest_float("y", 0, 3)
  
                  v0 = 4 * x ** 2 + 4 * y ** 2
                  v1 = (x - 5) ** 2 + (y - 5) ** 2
                  return v0, v1
  
  
              study = optuna.create_study(directions=["minimize", "minimize"])
              study.optimize(objective, n_trials=50)
  
              reference_point=[100, 50]
              optuna.visualization.matplotlib.plot_hypervolume_history(study, reference_point)
              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 hypervolumes.
              The number of objectives must be 2 or more.
  
          reference_point:
              A reference point to use for hypervolume computation.
              The dimension of the reference point must be the same as the number of objectives.
  
      Returns:
          A :class:`matplotlib.axes.Axes` object.
      """
  
      _imports.check()
  
      if not study._is_multi_objective():
          raise ValueError(
              "Study must be multi-objective. For single-objective optimization, "
              "please use plot_optimization_history instead."
          )
  
      if len(reference_point) != len(study.directions):
          raise ValueError(
              "The dimension of the reference point must be the same as the number of objectives."
          )
  
      info = _get_hypervolume_history_info(
          study, np.asarray(reference_point, dtype=np.float64)
      )
      return _get_hypervolume_history_plot(info)
  
file_path: optuna/optuna/visualization/matplotlib/_hypervolume_history.py
imports: from __future__ import annotations
  from collections.abc import Sequence
  import numpy
  from optuna._experimental import experimental_func
  from optuna.study import Study
  from optuna.visualization._hypervolume_history import _get_hypervolume_history_info
  from optuna.visualization._hypervolume_history import _HypervolumeHistoryInfo
  from optuna.visualization.matplotlib._matplotlib_imports import _imports
label_desc: Use image node_id 1 for calling a global function with example usage: plot_hypervolume_history(study, reference_point) and returns: _get_hypervolume_history_plot