class_docstr: Precision Recall visualization.
  
  It is recommend to use
  :func:`~sklearn.metrics.PrecisionRecallDisplay.from_estimator` or
  :func:`~sklearn.metrics.PrecisionRecallDisplay.from_predictions` to create
  a :class:`~sklearn.metrics.PrecisionRecallDisplay`. All parameters are
  stored as attributes.
  
  Read more in the :ref:`User Guide <visualizations>`.
  
  Parameters
  ----------
  precision : ndarray
      Precision values.
  
  recall : ndarray
      Recall values.
  
  average_precision : float, default=None
      Average precision. If None, the average precision is not shown.
  
  estimator_name : str, default=None
      Name of estimator. If None, then the estimator name is not shown.
  
  pos_label : int, float, bool or str, default=None
      The class considered as the positive class. If None, the class will not
      be shown in the legend.
  
      .. versionadded:: 0.24
  
  prevalence_pos_label : float, default=None
      The prevalence of the positive label. It is used for plotting the
      chance level line. If None, the chance level line will not be plotted
      even if `plot_chance_level` is set to True when plotting.
  
      .. versionadded:: 1.3
  
  Attributes
  ----------
  line_ : matplotlib Artist
      Precision recall curve.
  
  chance_level_ : matplotlib Artist or None
      The chance level line. It is `None` if the chance level is not plotted.
  
      .. versionadded:: 1.3
  
  ax_ : matplotlib Axes
      Axes with precision recall curve.
  
  figure_ : matplotlib Figure
      Figure containing the curve.
  
  See Also
  --------
  precision_recall_curve : Compute precision-recall pairs for different
      probability thresholds.
  PrecisionRecallDisplay.from_estimator : Plot Precision Recall Curve given
      a binary classifier.
  PrecisionRecallDisplay.from_predictions : Plot Precision Recall Curve
      using predictions from a binary classifier.
  
  Notes
  -----
  The average precision (cf. :func:`~sklearn.metrics.average_precision_score`) in
  scikit-learn is computed without any interpolation. To be consistent with
  this metric, the precision-recall curve is plotted without any
  interpolation as well (step-wise style).
  
  You can change this style by passing the keyword argument
  `drawstyle="default"` in :meth:`plot`, :meth:`from_estimator`, or
  :meth:`from_predictions`. However, the curve will not be strictly
  consistent with the reported average precision.
  
  Examples
  --------
  >>> import matplotlib.pyplot as plt
  >>> from sklearn.datasets import make_classification
  >>> from sklearn.metrics import (precision_recall_curve,
  ...                              PrecisionRecallDisplay)
  >>> from sklearn.model_selection import train_test_split
  >>> from sklearn.svm import SVC
  >>> X, y = make_classification(random_state=0)
  >>> X_train, X_test, y_train, y_test = train_test_split(X, y,
  ...                                                     random_state=0)
  >>> clf = SVC(random_state=0)
  >>> clf.fit(X_train, y_train)
  SVC(random_state=0)
  >>> predictions = clf.predict(X_test)
  >>> precision, recall, _ = precision_recall_curve(y_test, predictions)
  >>> disp = PrecisionRecallDisplay(precision=precision, recall=recall)
  >>> disp.plot()
  <...>
  >>> plt.show()
docstr: Plot visualization.
  
  Extra keyword arguments will be passed to matplotlib's `plot`.
  
  Parameters
  ----------
  ax : Matplotlib Axes, default=None
      Axes object to plot on. If `None`, a new figure and axes is
      created.
  
  name : str, default=None
      Name of precision recall curve for labeling. If `None`, use
      `estimator_name` if not `None`, otherwise no labeling is shown.
  
  plot_chance_level : bool, default=False
      Whether to plot the chance level. The chance level is the prevalence
      of the positive label computed from the data passed during
      :meth:`from_estimator` or :meth:`from_predictions` call.
  
      .. versionadded:: 1.3
  
  chance_level_kw : dict, default=None
      Keyword arguments to be passed to matplotlib's `plot` for rendering
      the chance level line.
  
      .. versionadded:: 1.3
  
  **kwargs : dict
      Keyword arguments to be passed to matplotlib's `plot`.
  
  Returns
  -------
  display : :class:`~sklearn.metrics.PrecisionRecallDisplay`
      Object that stores computed values.
  
  Notes
  -----
  The average precision (cf. :func:`~sklearn.metrics.average_precision_score`)
  in scikit-learn is computed without any interpolation. To be consistent
  with this metric, the precision-recall curve is plotted without any
  interpolation as well (step-wise style).
  
  You can change this style by passing the keyword argument
  `drawstyle="default"`. However, the curve will not be strictly
  consistent with the reported average precision.
docstr_tok: ["Plot","visualization",".","Extra","keyword","arguments","will","be","passed","to","matplotlib","'s","`","plot","`",".","Parameters","--","--","--","--","--","ax",":","Matplotlib","Axes",",","default=None","Axes","object","to","plot","on",".","If","`","None","`",",","a","new","figure","and","axes","is","created",".","name",":","str",",","default=None","Name","of","precision","recall","curve","for","labeling",".","If","`","None","`",",","use","`","estimator_name","`","if","not","`","None","`",",","otherwise","no","labeling","is","shown",".","plot_chance_level",":","bool",",","default=False","Whether","to","plot","the","chance","level",".","The","chance","level","is","the","prevalence","of","the","positive","label","computed","from","the","data","passed","during",":","meth",":","`","from_estimator","`","or",":","meth",":","`","from_predictions","`","call",".","..","versionadded",":",":","1.3","chance_level_kw",":","dict",",","default=None","Keyword","arguments","to","be","passed","to","matplotlib","'s","`","plot","`","for","rendering","the","chance","level","line",".","..","versionadded",":",":","1.3","*","*","kwargs",":","dict","Keyword","arguments","to","be","passed","to","matplotlib","'s","`","plot","`",".","Returns","--","--","--","-","display",":",":","class",":","`","~sklearn.metrics.PrecisionRecallDisplay","`","Object","that","stores","computed","values",".","Notes","--","--","-","The","average","precision","(","cf",".",":","func",":","`","~sklearn.metrics.average_precision_score","`",")","in","scikit-learn","is","computed","without","any","interpolation",".","To","be","consistent","with","this","metric",",","the","precision-recall","curve","is","plotted","without","any","interpolation","as","well","(","step-wise","style",")",".","You","can","change","this","style","by","passing","the","keyword","argument","`","drawstyle=","''","default","''","`",".","However",",","the","curve","will","not","be","strictly","consistent","with","the","reported","average","precision","."]
code: def plot(
      self,
      ax=None,
      *,
      name=None,
      plot_chance_level=False,
      chance_level_kw=None,
      **kwargs,
  ):
      """Plot visualization.
  
      Extra keyword arguments will be passed to matplotlib's `plot`.
  
      Parameters
      ----------
      ax : Matplotlib Axes, default=None
          Axes object to plot on. If `None`, a new figure and axes is
          created.
  
      name : str, default=None
          Name of precision recall curve for labeling. If `None`, use
          `estimator_name` if not `None`, otherwise no labeling is shown.
  
      plot_chance_level : bool, default=False
          Whether to plot the chance level. The chance level is the prevalence
          of the positive label computed from the data passed during
          :meth:`from_estimator` or :meth:`from_predictions` call.
  
          .. versionadded:: 1.3
  
      chance_level_kw : dict, default=None
          Keyword arguments to be passed to matplotlib's `plot` for rendering
          the chance level line.
  
          .. versionadded:: 1.3
  
      **kwargs : dict
          Keyword arguments to be passed to matplotlib's `plot`.
  
      Returns
      -------
      display : :class:`~sklearn.metrics.PrecisionRecallDisplay`
          Object that stores computed values.
  
      Notes
      -----
      The average precision (cf. :func:`~sklearn.metrics.average_precision_score`)
      in scikit-learn is computed without any interpolation. To be consistent
      with this metric, the precision-recall curve is plotted without any
      interpolation as well (step-wise style).
  
      You can change this style by passing the keyword argument
      `drawstyle="default"`. However, the curve will not be strictly
      consistent with the reported average precision.
      """
      self.ax_, self.figure_, name = self._validate_plot_params(
          ax=ax, name=name
      )
  
      line_kwargs = {"drawstyle": "steps-post"}
      if self.average_precision is not None and name is not None:
          line_kwargs[
              "label"
          ] = f"{name} (AP = {self.average_precision:0.2f})"
      elif self.average_precision is not None:
          line_kwargs["label"] = f"AP = {self.average_precision:0.2f}"
      elif name is not None:
          line_kwargs["label"] = name
      line_kwargs.update(**kwargs)
  
      (self.line_,) = self.ax_.plot(
          self.recall, self.precision, **line_kwargs
      )
  
      info_pos_label = (
          f" (Positive label: {self.pos_label})"
          if self.pos_label is not None
          else ""
      )
  
      xlabel = "Recall" + info_pos_label
      ylabel = "Precision" + info_pos_label
      self.ax_.set(xlabel=xlabel, ylabel=ylabel)
  
      if plot_chance_level:
          if self.prevalence_pos_label is None:
              raise ValueError(
                  "You must provide prevalence_pos_label when constructing the "
                  "PrecisionRecallDisplay object in order to plot the chance "
                  "level line. Alternatively, you may use "
                  "PrecisionRecallDisplay.from_estimator or "
                  "PrecisionRecallDisplay.from_predictions "
                  "to automatically set prevalence_pos_label"
              )
  
          chance_level_line_kw = {
              "label": f"Chance level (AP = {self.prevalence_pos_label:0.2f})",
              "color": "k",
              "linestyle": "--",
          }
          if chance_level_kw is not None:
              chance_level_line_kw.update(chance_level_kw)
  
          (self.chance_level_,) = self.ax_.plot(
              (0, 1),
              (self.prevalence_pos_label, self.prevalence_pos_label),
              **chance_level_line_kw,
          )
      else:
          self.chance_level_ = None
  
      if "label" in line_kwargs or plot_chance_level:
          self.ax_.legend(loc="lower left")
  
      return self
  
file_path: catboost/contrib/python/scikit-learn/py3/sklearn/metrics/_plot/precision_recall_curve.py
imports: from collections import Counter
  from ...utils._plotting import _BinaryClassifierCurveDisplayMixin
  from .._ranking import average_precision_score, precision_recall_curve
label_desc: Use image node_id 2 for calling the PrecisionRecallDisplay obj's underlying member method code with example usage: obj.plot(ax) and returns: self