etna.analysis.plot_metric_per_segment#

plot_metric_per_segment(metrics_df: DataFrame, metric_name: str, ascending: bool = False, per_fold_aggregation_mode: str = 'mean', top_k: int | None = None, barplot_params: Dict[str, Any] | None = None, figsize: Tuple[int, int] = (10, 5))[source]#

Plot barplot with per-segment metrics.

If for some segment all metric values are missing, it isn’t plotted, and the warning is raised.

If some segments have different set of folds with non-missing metrics, it can lead to incompatible values between folds. The warning is raised in such case.

Parameters:
  • metrics_df (DataFrame) – dataframe with metrics calculated on the backtest

  • metric_name (str) – name of the metric to visualize

  • ascending (bool) –

    • If True, small values at the top;

    • If False, big values at the top.

  • per_fold_aggregation_mode (str) – how to aggregate metrics over the folds if they aren’t already aggregated (see PerFoldAggregation)

  • top_k (int | None) – number segments to show after ordering according to ascending

  • barplot_params (Dict[str, Any] | None) – dictionary with parameters for plotting, seaborn.barplot() is used

  • figsize (Tuple[int, int]) – size of the figure per subplot with one segment in inches

Raises:
  • ValueError: – if metric_name isn’t present in metrics_df

  • NotImplementedError: – unknown per_fold_aggregation_mode is given

Warning

UserWarning:

There are segments with all missing metric values.

UserWarning:

Some segments have different set of folds to be aggregated on due to missing values.