class_docstr: An axis spine -- the line noting the data area boundaries.
  
  Spines are the lines connecting the axis tick marks and noting the
  boundaries of the data area. They can be placed at arbitrary
  positions. See `~.Spine.set_position` for more information.
  
  The default position is ``('outward', 0)``.
  
  Spines are subclasses of `.Patch`, and inherit much of their behavior.
  
  Spines draw a line, a circle, or an arc depending on if
  `~.Spine.set_patch_line`, `~.Spine.set_patch_circle`, or
  `~.Spine.set_patch_arc` has been called. Line-like is the default.
  
  For examples see :ref:`spines_examples`.
class_docstr_tok: ["An","axis","spine","--","the","line","noting","the","data","area","boundaries",".","Spines","are","the","lines","connecting","the","axis","tick","marks","and","noting","the","boundaries","of","the","data","area",".","They","can","be","placed","at","arbitrary","positions",".","See","`","~.Spine.set_position","`","for","more","information",".","The","default","position","is","``","(","'outward","'",",","0",")","``",".","Spines","are","subclasses","of","`",".Patch","`",",","and","inherit","much","of","their","behavior",".","Spines","draw","a","line",",","a","circle",",","or","an","arc","depending","on","if","`","~.Spine.set_patch_line","`",",","`","~.Spine.set_patch_circle","`",",","or","`","~.Spine.set_patch_arc","`","has","been","called",".","Line-like","is","the","default",".","For","examples","see",":","ref",":","`","spines_examples","`","."]
docstr: Parameters
  ----------
  axes : `~matplotlib.axes.Axes`
      The `~.axes.Axes` instance containing the spine.
  spine_type : str
      The spine type.
  path : `~matplotlib.path.Path`
      The `.Path` instance used to draw the spine.
  
  Other Parameters
  ----------------
  **kwargs
      Valid keyword arguments are:
  
      %(Patch:kwdoc)s
docstr_tok: ["Parameters","--","--","--","--","--","axes",":","`","~matplotlib.axes.Axes","`","The","`","~.axes.Axes","`","instance","containing","the","spine",".","spine_type",":","str","The","spine","type",".","path",":","`","~matplotlib.path.Path","`","The","`",".Path","`","instance","used","to","draw","the","spine",".","Other","Parameters","--","--","--","--","--","--","--","--","*","*","kwargs","Valid","keyword","arguments","are",":","%","(","Patch",":","kwdoc",")","s"]
code: def __init__(self, axes, spine_type, path, **kwargs):
      """
      Parameters
      ----------
      axes : `~matplotlib.axes.Axes`
          The `~.axes.Axes` instance containing the spine.
      spine_type : str
          The spine type.
      path : `~matplotlib.path.Path`
          The `.Path` instance used to draw the spine.
  
      Other Parameters
      ----------------
      **kwargs
          Valid keyword arguments are:
  
          %(Patch:kwdoc)s
      """
      super().__init__(**kwargs)
      self.axes = axes
      self.set_figure(self.axes.figure)
      self.spine_type = spine_type
      self.set_facecolor("none")
      self.set_edgecolor(mpl.rcParams["axes.edgecolor"])
      self.set_linewidth(mpl.rcParams["axes.linewidth"])
      self.set_capstyle("projecting")
      self.axis = None
  
      self.set_zorder(2.5)
      self.set_transform(self.axes.transData)  # default transform
  
      self._bounds = None  # default bounds
  
      # Defer initial position determination. (Not much support for
      # non-rectangular axes is currently implemented, and this lets
      # them pass through the spines machinery without errors.)
      self._position = None
      _api.check_isinstance(mpath.Path, path=path)
      self._path = path
  
      # To support drawing both linear and circular spines, this
      # class implements Patch behavior three ways. If
      # self._patch_type == 'line', behave like a mpatches.PathPatch
      # instance. If self._patch_type == 'circle', behave like a
      # mpatches.Ellipse instance. If self._patch_type == 'arc', behave like
      # a mpatches.Arc instance.
      self._patch_type = "line"
  
      # Behavior copied from mpatches.Ellipse:
      # Note: This cannot be calculated until this is added to an Axes
      self._patch_transform = mtransforms.IdentityTransform()
  
imports: from collections.abc import MutableMapping
  import functools
  import numpy
  import matplotlib
  from matplotlib import _api, _docstring
  from matplotlib.artist import allow_rasterization
  import matplotlib.transforms
  import matplotlib.patches
  import matplotlib.path
label_desc: Use image node_id 2 to create a new Spine object from inherited base classes: mpatches with example: obj = Spine(axes, spine_type, path)