class_docstr: Plot confusion matrix.
  
  Examples
  --------
  .. plot:: ../examples/confusion_matrix_oop.py
  
  Notes
  -----
  .. versionchanged:: 0.9
      Added ``cmap`` argument
code: def __init__(
      self, cm, *, target_names=None, normalize=False, cmap=None
  ):
      self.cm = cm
      self.target_names = target_names
      self.normalize = normalize
      self.cmap = _confusion_matrix_init_defaults(cmap=cmap)
  
imports: import json
  from pathlib import Path
  import numpy
  import matplotlib.pyplot
  from sklearn.metrics import confusion_matrix
  from sklearn_evaluation import __version__
  from ..telemetry import SKLearnEvaluationLogger
  from ..plot.matplotlib import bar
  from ..metrics import precision_at
  from ..None import compute
  from ..util import is_column_vector, is_row_vector, default_heatmap
  from sklearn_evaluation.plot.plot import AbstractPlot, AbstractComposedPlot
  from ..plot import _matrix
  from ploomber_core.exceptions import modify_exceptions
label_desc: Use image node_id 1 to create a new ConfusionMatrix object from inherited base classes: AbstractPlot with example: obj = ConfusionMatrix(cm)