def plot_pr_curves(
        self, classes=None, num_points=101, backend="plotly", **kwargs
    ):
        """Plots precision-recall (PR) curves for the detection results.

        Args:
            classes (None): a list of classes to generate curves for. By
                default, the top 3 AP classes will be plotted
            num_points (101): the number of linearly spaced recall values to
                plot
            backend ("plotly"): the plotting backend to use. Supported values
                are ``("plotly", "matplotlib")``
            **kwargs: keyword arguments for the backend plotting method:

                -   "plotly" backend: :meth:`fiftyone.core.plots.plotly.plot_pr_curves`
                -   "matplotlib" backend: :meth:`fiftyone.core.plots.matplotlib.plot_pr_curves`

        Returns:
            one of the following:

            -   a :class:`fiftyone.core.plots.plotly.PlotlyNotebookPlot`, if
                you are working in a notebook context and the plotly backend is
                used
            -   a plotly or matplotlib figure, otherwise
        """
        if classes is not None:
            self._validate_classes(classes)
        else:
            classwise_AP = [(ap, c) for c, ap in self._classwise_AP.items()]
            classes = [c for ap, c in sorted(classwise_AP)[-3:]]

        precisions = []
        recall = None

        has_thresholds = self.thresholds is not None
        thresholds = [] if has_thresholds else None

        for c in classes:
            p = self.precision.get(c, None)
            r = self.recall.get(c, None)
            if has_thresholds:
                t = self.thresholds.get(c, None)
            else:
                t = None

            pre, rec, thr = _interpolate_pr(
                p, r, thresholds=t, num_points=num_points
            )

            precisions.append(pre)

            if recall is None:
                recall = rec

            if has_thresholds:
                thresholds.append(thr)

        return fop.plot_pr_curves(
            precisions,
            recall,
            classes,
            thresholds=thresholds,
            backend=backend,
            **kwargs,
        )
Plots precision-recall (PR) curves for the detection results.

        Args:
            classes (None): a list of classes to generate curves for. By
                default, the top 3 AP classes will be plotted
            num_points (101): the number of linearly spaced recall values to
                plot
            backend ("plotly"): the plotting backend to use. Supported values
                are ``("plotly", "matplotlib")``
            **kwargs: keyword arguments for the backend plotting method:

                -   "plotly" backend: :meth:`fiftyone.core.plots.plotly.plot_pr_curves`
                -   "matplotlib" backend: :meth:`fiftyone.core.plots.matplotlib.plot_pr_curves`

        Returns:
            one of the following:

            -   a :class:`fiftyone.core.plots.plotly.PlotlyNotebookPlot`, if
                you are working in a notebook context and the plotly backend is
                used
            -   a plotly or matplotlib figure, otherwise
        
fiftyone/utils/eval/openimages.py