optuna.visualization.plot_rank(study, params=None, *, target=None, target_name='Objective Value')[source]

Plot parameter relations as scatter plots with colors indicating ranks of target value.

Note that trials missing the specified parameters will not be plotted.


The following code snippet shows how to plot the parameter relationship as a rank plot.

import optuna

def objective(trial):
    x = trial.suggest_float("x", -100, 100)
    y = trial.suggest_categorical("y", [-1, 0, 1])

    c0 = 400 - (x + y)**2
    trial.set_user_attr("constraint", [c0])

    return x ** 2 + y

def constraints(trial):
    return trial.user_attrs["constraint"]

sampler = optuna.samplers.TPESampler(seed=10, constraints_func=constraints)
study = optuna.create_study(sampler=sampler)
study.optimize(objective, n_trials=30)

fig = optuna.visualization.plot_rank(study, params=["x", "y"])
  • study (Study) – A Study object whose trials are plotted for their target values.

  • params (list[str] | None) – Parameter list to visualize. The default is all parameters.

  • target (Callable[[FrozenTrial], float] | None) –

    A function to specify the value to display. If it is None and study is being used for single-objective optimization, the objective values are plotted.


    Specify this argument if study is being used for multi-objective optimization.

  • target_name (str) – Target’s name to display on the color bar.


A plotly.graph_objects.Figure object.

Return type:



This function requires plotly >= 5.0.0.