class_docstr: Plot ROC curve
  
  Parameters
  ----------
  fpr : ndarray of shape (>2,), list of lists or list of numbers
      Increasing false positive rates such that element i is the false
      positive rate of predictions with score >= `thresholds[i]`.
  
  tpr : ndarray of shape (>2,), list of lists or list of numbers
      Increasing true positive rates such that element `i` is the true
      positive rate of predictions with score >= `thresholds[i]`.
  
  label : list of str, default: None
      Set curve labels
  
  ax: matplotlib Axes, default: None
      Axes object to draw the plot onto, otherwise uses current Axes
  
  Examples
  --------
  .. plot:: ../examples/roc_binary_classification.py
  
  .. plot:: ../examples/roc_comparison.py
  
  .. plot:: ../examples/roc_multi_classification.py
  
  Notes
  -----
  .. versionadded:: 0.8.4
code: def __init__(self, fpr, tpr, label=None, ax=None):
      if fpr is None or tpr is None:
          raise TypeError("fpr and tpr must be defined.")
  
      if type(fpr) != type(tpr):
          raise TypeError(
              "fpr and tpr must be the same type. "
              f"Recevied: fpr {type(fpr)} != tpr {type(tpr)}"
          )
  
      if len(fpr) == 0 or len(tpr) == 0:
          raise ValueError("fpr and tpr must not be empty")
  
      if not isinstance(fpr[0], (list, np.ndarray)):
          fpr = [fpr]
          tpr = [tpr]
  
      if len(fpr) != len(tpr):
          raise ValueError(
              "fpr and tpr lengths should correspond. "
              f"Recevied: fpr {len(fpr)} != tpr {len(tpr)}"
          )
  
      for i in range(len(fpr)):
          fpr_ = fpr[i]
          tpr_ = tpr[i]
  
          if len(fpr_) != len(tpr_):
              raise ValueError(
                  "fpr and tpr lengths should correspond. "
                  f"Recevied: fpr {len(fpr_)} != tpr {len(tpr_)} at index {i}"
              )
  
      self.fpr = fpr
      self.tpr = tpr
      self.label = label
      self.ax = ax
  
imports: import numpy
  import matplotlib.pyplot
  from sklearn.metrics import roc_curve, auc
  from sklearn.preprocessing import label_binarize
  from ..telemetry import SKLearnEvaluationLogger
  from ..util import is_column_vector, is_row_vector
  from sklearn_evaluation import __version__
  import json
  from pathlib import Path
  from sklearn_evaluation.plot.plot import AbstractPlot, AbstractComposedPlot
  from ploomber_core.exceptions import modify_exceptions
label_desc: Use image node_id 1 to create a new ROC object from inherited base classes: AbstractPlot with example: obj = ROC(fpr, tpr, label, ax)