class_docstr: Curve class.
  
  >>> import numpy as np
  >>> crv = Curve(actual_vector=np.array([1, 1, 2, 2]), probs=np.array([[0.1, 0.9], [0.4, 0.6], [0.35, 0.65], [0.8, 0.2]]), classes=[2, 1])
  >>> crv.classes
  [2, 1]
  >>> crv.thresholds
  [0.1, 0.2, 0.35, 0.4, 0.6, 0.65, 0.8, 0.9]
  >>> crv.data[2]["TPR"]
  [1.0, 1.0, 1.0, 0.5, 0.5, 0.5, 0.5, 0.0]
  >>> crv.data[2]["FPR"]
  [1.0, 0.5, 0.5, 0.5, 0.0, 0.0, 0.0, 0.0]
  >>> auc_trp = crv.area()
  >>> auc_trp[1]
  0.75
  >>> auc_trp[2]
  0.75
  >>> auc_mid = crv.area(method="midpoint")
  >>> auc_mid[1]
  0.75
  >>> auc_mid[2]
  0.75
class_docstr_tok: ["Curve","class",".",">",">",">","import","numpy","as","np",">",">",">","crv","=","Curve","(","actual_vector=np.array","(","[","1",",","1",",","2",",","2","]",")",",","probs=np.array","(","[","[","0.1",",","0.9","]",",","[","0.4",",","0.6","]",",","[","0.35",",","0.65","]",",","[","0.8",",","0.2","]","]",")",",","classes=","[","2",",","1","]",")",">",">",">","crv.classes","[","2",",","1","]",">",">",">","crv.thresholds","[","0.1",",","0.2",",","0.35",",","0.4",",","0.6",",","0.65",",","0.8",",","0.9","]",">",">",">","crv.data","[","2","]","[","``","TPR","''","]","[","1.0",",","1.0",",","1.0",",","0.5",",","0.5",",","0.5",",","0.5",",","0.0","]",">",">",">","crv.data","[","2","]","[","``","FPR","''","]","[","1.0",",","0.5",",","0.5",",","0.5",",","0.0",",","0.0",",","0.0",",","0.0","]",">",">",">","auc_trp","=","crv.area","(",")",">",">",">","auc_trp","[","1","]","0.75",">",">",">","auc_trp","[","2","]","0.75",">",">",">","auc_mid","=","crv.area","(","method=","''","midpoint","''",")",">",">",">","auc_mid","[","1","]","0.75",">",">",">","auc_mid","[","2","]","0.75"]
docstr: Plot the given curve.
  
  :param classes: ordered labels of classes
  :type classes: list
  :param area: area flag
  :type area: bool
  :param area_method: numerical integral technique (trapezoidal or midpoint)
  :type area_method: str
  :param colors: color for each class in plot
  :type colors: list
  :param markers: plot marker
  :type markers: list
  :param linewidth: plot line width
  :type linewidth: float
  :return: plot axes
docstr_tok: ["Plot","the","given","curve",".",":","param","classes",":","ordered","labels","of","classes",":","type","classes",":","list",":","param","area",":","area","flag",":","type","area",":","bool",":","param","area_method",":","numerical","integral","technique","(","trapezoidal","or","midpoint",")",":","type","area_method",":","str",":","param","colors",":","color","for","each","class","in","plot",":","type","colors",":","list",":","param","markers",":","plot","marker",":","type","markers",":","list",":","param","linewidth",":","plot","line","width",":","type","linewidth",":","float",":","return",":","plot","axes"]
code: def plot(
      self,
      classes=None,
      area=False,
      area_method="trapezoidal",
      colors=None,
      markers=None,
      linewidth=1,
  ):
      """
      Plot the given curve.
  
      :param classes: ordered labels of classes
      :type classes: list
      :param area: area flag
      :type area: bool
      :param area_method: numerical integral technique (trapezoidal or midpoint)
      :type area_method: str
      :param colors: color for each class in plot
      :type colors: list
      :param markers: plot marker
      :type markers: list
      :param linewidth: plot line width
      :type linewidth: float
      :return: plot axes
      """
      fig, ax, classes = __plot_validation__(
          self, classes, area, area_method, colors, markers
      )
      ax.set_xlabel(self.plot_x_axis)
      ax.set_ylabel(self.plot_y_axis)
      fig.suptitle(self.title)
      for c_index, c in enumerate(classes):
          label = "{}".format(c)
          if area:
              label += "(area={:.3f})".format(self.auc[c])
          color = None
          if colors is not None:
              color = colors[c_index]
          marker = None
          if markers is not None:
              marker = markers[c_index]
          ax.plot(
              self.data[c][self.plot_x_axis],
              self.data[c][self.plot_y_axis],
              linewidth=linewidth,
              marker=marker,
              label=label,
              color=color,
          )
      ax.plot(
          numpy.linspace(0, 1), numpy.linspace(0, 1), "k--", alpha=0.2
      )
      ax.legend()
      return ax
  
imports: from __future__ import division
  from .pycm_error import pycmCurveError, pycmPlotError
  from .pycm_util import threshold_func, thresholds_calc, isfloat
  from .pycm_param import *
  from .pycm_obj import ConfusionMatrix
  from warnings import warn
  import numpy
label_desc: Use image node_id 3 for calling the Curve obj's underlying member method code with example usage: obj.plot(classes, area, area_method, colors, markers, linewidth) and returns: ax