optuna.multi_objective.visualization.plot_pareto_front(study, names=None, include_dominated_trials=False, axis_order=None)[source]

Plot the pareto front of a study.


The following code snippet shows how to plot the pareto front of a study.

import optuna

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.multi_objective.create_study(["minimize", "minimize"])
study.optimize(objective, n_trials=50)

fig = optuna.multi_objective.visualization.plot_pareto_front(study)
  • study (optuna.multi_objective.study.MultiObjectiveStudy) – A MultiObjectiveStudy object whose trials are plotted for their objective values.

  • names (Optional[List[str]]) – Objective name list used as the axis titles. If None is specified, “Objective {objective_index}” is used instead.

  • include_dominated_trials (bool) – A flag to include all dominated trial’s objective values.

  • axis_order (Optional[List[int]]) – A list of indices indicating the axis order. If None is specified, default order is used.


A plotly.graph_objs.Figure object.


ValueError – If the number of objectives of study isn’t 2 or 3.

Return type



Deprecated in v2.4.0. This feature will be removed in the future. The removal of this feature is currently scheduled for v4.0.0, but this schedule is subject to change. See https://github.com/optuna/optuna/releases/tag/v2.4.0.