code: def get_pps_figure(
      per_class: bool,
      n_of_features: int,
      x_name: str = "feature",
      xaxis_title: str = "Column",
  ):
      """If per_class is True, then no title is defined on the figure."""
      fig = go.Figure()
      fig.update_layout(
          yaxis_title="Predictive Power Score (PPS)",
          yaxis_range=(0, 1.05),
          # NOTE:
          # the range, in this case, is needed to fix a problem with
          # too wide bars when there are only one or two of them`s on
          # the plot, plus it also centralizes them`s on the plot
          # The min value of the range (range(min. max)) is bigger because
          # otherwise bars will not be centralized on the plot, they will
          # appear on the left part of the plot (that is probably because of zero)
          xaxis_range=(-3, n_of_features + 2),
          legend=dict(x=1.0, y=1.0),
          barmode="group",
          height=500,
          # Set the x-axis as category, since if the column names are numbers it will infer the x-axis as numerical
          # and will show the values very far from each other
          xaxis_type="category",
      )
      if per_class:
          fig.update_layout(xaxis_title="Class")
      else:
          fig.update_layout(
              title=f"Predictive Power Score (PPS) - Can a {x_name} predict the label by itself?",
              xaxis_title=xaxis_title,
          )
      return fig
  
file_path: deepchecks/deepchecks/core/check_utils/feature_label_correlation_utils.py
imports: from typing import Optional, Tuple
  import numpy
  import pandas
  import plotly.graph_objects
  import deepchecks.ppscore
  from deepchecks.utils.plot import DEFAULT_DATASET_NAMES, colors
  from deepchecks.utils.strings import format_percent
  from deepchecks.utils.typing import Hashable
label_desc: Use image node_id 1 for calling a global function with example usage: get_pps_figure(per_class, n_of_features, x_name, xaxis_title) and returns: fig