code: def roc(y_true, y_score, ax=None):
      """Plot ROC curve
  
      Parameters
      ----------
      y_true : array-like, shape = [n_samples]
          Correct target values (ground truth).
  
      y_score : array-like, shape = [n_samples] or [n_samples, 2] for binary
          classification or [n_samples, n_classes] for multiclass
          Target scores (estimator predictions).
  
      ax: matplotlib Axes, default: None
          Axes object to draw the plot onto, otherwise uses current Axes
  
      Notes
      -----
      It is assumed that the y_score parameter columns are in order.
      For example, if ``y_true = [2, 2, 1, 0, 0, 1, 2]``, then the
      first column in y_score must contain the scores for class 0,
      second column for class 1 and so on.
  
      Examples
      --------
      .. plot:: ../examples/roc.py
      """
      # support old API
      r = ROC.from_raw_data(y_true, y_score, ax=ax)
      return r.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 for calling a global function with example usage: roc(y_true, y_score, ax) and returns: r