class_docstr: Provide a vertical (default) and/or horizontal line cursor shared between
  multiple axes.
  For the cursor to remain responsive you much keep a reference to
  it.
  Example usage::
      from matplotlib.widgets import MultiCursor
      from pylab import figure, show, np
      t = np.arange(0.0, 2.0, 0.01)
      s1 = np.sin(2*np.pi*t)
      s2 = np.sin(4*np.pi*t)
      fig = figure()
      ax1 = fig.add_subplot(211)
      ax1.plot(t, s1)
      ax2 = fig.add_subplot(212, sharex=ax1)
      ax2.plot(t, s2)
      multi = MultiCursor(fig.canvas, (ax1, ax2), color='r', lw=1,
                          horizOn=False, vertOn=True)
      show()
code: def __init__(
      self,
      canvas,
      axes,
      useblit=True,
      horizOn=False,
      vertOn=True,
      **lineprops,
  ):
      self.canvas = canvas
      self.axes = axes
      self.horizOn = horizOn
      self.vertOn = vertOn
  
      xmin, xmax = axes[-1].get_xlim()
      xmid = 0.5 * (xmin + xmax)
  
      self.visible = True
      self.useblit = useblit and self.canvas.supports_blit
      self.background = None
      self.needclear = False
  
      if self.useblit:
          lineprops["animated"] = True
  
      if vertOn:
          self.vlines = [
              ax.axvline(xmid, visible=False, **lineprops)
              for ax in axes
          ]
      else:
          self.vlines = []
  
      if horizOn:
          self.hlines = []
          for ax in axes:
              ymin, ymax = ax.get_ylim()
              ymid = 0.5 * (ymin + ymax)
              hline = ax.axhline(ymid, visible=False, **lineprops)
              self.hlines.append(hline)
      else:
          self.hlines = []
  
      self.connect()
  
imports: from ..utils.py3 import zip
label_desc: Use image node_id 1 to create a new MultiCursor2 object from inherited base classes: Widget with example: obj = MultiCursor2(canvas, axes, useblit, horizOn, vertOn)